好吧,所以:我必須在vb中創建一個.exe文件。這個.exe必須調用一個vb dll,並且該vb dll必須調用一個本機C dll(仍然在那個:()上工作。如何從vb6調用本機C DLL
真正的問題是:我有這個C dll,我試圖這個問題是:每次我嘗試調用它時,它都會給出「錯誤53:找不到文件」,但是!如果我指向另一個DLL在同一個文件中位置(更簡單的一個,無需外接任何包括和狗屎),它的工作原理。
爲什麼呢?我必須包括一些在VB其他項目除了DLL itsels?
@ EDIT1
我已經在C中創建了一個調用該DLL的測試程序,它工作得很好。
我設法做了一些改變,現在我有另一個問題,這是更重要的方式。 :(
我現在可以正常調用一個DLL,事情是這樣的:我創建了一個調用C中的DLL的VB6 EXE 我必須調用的C中的函數名爲「FindPIN」。函數FindPIN用CreateFile打開一個COM端口,意思是:
(IN VB6)調用FindPIN - >(在C DLL中)FindPIN調用CreateFile並保存該端口的句柄 - >返回一個代碼(如< 0錯誤,內容十分重要)
當我打電話FindPIN,它的工作原理,但它總是返回-1功能:。
hSerialComm = Createfile (...);
if (hSerialComm == INVALID_HANDLE_VALUE)
return -1;
這意味着它無法打開COM端口! :(
,但如果我嘗試運行C exe文件,如:
(IN C.exe)呼叫FindPIN - >(在C DLL)FindPIN調用的CreateFile,並從該端口節省了手柄 - >返回代碼(如< 0錯誤,內容十分重要)。
它工作得很好,和COM口打開!:(
有什麼我在VB6做除了功能的黎民聲明?我正常這樣做,就像
Private Declare Function FindPIN Lib "pin.dll"() As Integer
:(請幫助我!
我建議,編寫C或csharp的一個簡單的例子,以確保該dll運行良好。 – neohope
首先嚐試'聲明自動函數FindPIN Lib「pin.dll」()作爲整數' – neohope
這是行不通的。在win98兼容模式下運行你的c.exe。 – neohope