我一直在嘗試創建一個可以通過VB6訪問的C/C++的DLL,這就是我得到錯誤「453在myDllName中找不到DLL入口點myFunctionName .dll「從VB6應用程序調用該函數後。 在搜索了包括本網站在內的網站之後,我發現我並不孤單,而且我嘗試過發佈各種解決方案,但錯誤「453」無法解決。 這不是一個COMM DLL,我相信這是可能的,當通過C/C++創建。 無論如何,請幫助,如果可以的話。請參考以下下面這個簡單的測試案例:DLL導出VB6調用的C/C++ 6.00函數
爲C創建的DLL/C++ 6.00 Win32動態鏈接庫:
#include <Windows.h>
// Note that I did try the line below rather than the def file, but to no avail...
// #pragma comment(linker, "/EXPORT:[email protected]")
// Function definition
extern "C" int __declspec(dllexport) __stdcall ibask32()
{
MessageBox(NULL,"String","Sample Code", NULL);
return 0L;
}
DEF文件:
LIBRARY "Gpib-32"
EXPORTS
ibask32
現在的VB App:
以下是啓動Form1的全部內容,Form_Load
Option Explicit
Private Sub Form_Load()
Call ibask
End Sub
以下是添加到項目中的BAS模塊文件:提前
Option Explicit
Declare Function ibask32 Lib "Gpib-32.dll" Alias "ibask"() As Long
Sub ibask()
Call ibask32 ' Note: This is the point of failure
End Sub
感謝,如果能提供一個可行的解決方案, 湯姆
謝謝漢斯, 問題解決了......它現在工作正常。 感謝Dumpbin/exports課程的確讓事情變得更加清晰。你在上面說的「它必須與別名相匹配......」 讓我立刻;這是必須從DLL中導出的內容。 感謝您的及時迴應。 – 2010-06-17 20:46:56
@nash,聽起來像是對我有用的答案。請不要忘記標記爲這樣,我的帖子旁邊的複選標記。 – 2010-06-17 21:26:07
+1非常棒的答案。 @nashth,如果您還有其他問題,請查看1996年的Microsoft關於編寫可從VB5調用的C 4.0 DLL的建議。他們從未更新過文檔,但我認爲幾乎所有的建議對於C++ 6.0 <-> VB6都是相關的。 http://vb.mvps.org/tips/vb5dll.asp – MarkJ 2010-06-18 12:04:50