vb调用vc编写的dll遇到的问题

sanlei1616 2007-01-16 10:59:00
vb调用vc编写的dll遇到的错误


各位大虾,小弟在用vb调用vc编写的dll是遇到了错误,渴求帮帮忙:

vc中代码:
dll3.h:
#ifdef DLL3_EXPORTS
#define DLL3_API __declspec(dllexport)
#else
#define DLL3_API __declspec(dllimport)
#endif

// This class is exported from the dll3.dll
class DLL3_API CDll3 {
public:
CDll3(void);
// TODO: add your methods here.
};

extern DLL3_API int nDll3;

DLL3_API short fnDll3();/////////////////////////我主要用它

extern DLL3_API short __stdcall sample();


dll3.cpp代码:
#include "stdafx.h"
#include "dll3.h"

BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}


// This is an example of an exported variable
DLL3_API int nDll3=0;

// This is an example of an exported function.
DLL3_API short fnDll3()
{
return 42;
}

// This is the constructor of a class that has been exported.
// see dll3.h for the class definition
CDll3::CDll3()
{
return;
}

DLL3_API short __stdcall sample()
{
return 10;
}

生成的dll3.dll 放入system32目录下;

vb中的代码:

Option Explicit
Private Declare Function fnDll3 Lib "dll3.dll" () As Integer

Private Sub Command1_Click()
Dim i As Integer
i = 12
i = fnDll3 //////////////
MsgBox i
End Sub


错误提示: can't find Dll entry point fnDll3 in dll3.dll

都愁死我了,恳求大虾们帮帮忙,
期待中......
万分感谢~
...全文
130 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
a达哥a 2007-01-17
  • 打赏
  • 举报
回复
好像给VB的DLL要用什么什么stdcall修饰的吧?
of123 2007-01-17
  • 打赏
  • 举报
回复
试试,在工程中加入一个 DLL3.def 文件:
; DLL3.def : Declares the module parameters for the DLL.

LIBRARY "DLL3"
DESCRIPTION 'DLL3 Windows Dynamic Link Library'

EXPORTS
; Explicit exports can go here

fnDll3 @1

然后,重新编译。

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧