为什么找不到dll入口点

rabbit8175 2011-04-26 04:35:26
想练习一下用vb调到vc,提示找不到dll入口点 ,请问这是怎么回事?
vc代码:
#include "stdafx.h"

extern "C" __declspec(dllexport) int __stdcall Addtwo( int a, int b);



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;
}


int __stdcall Addtwo(int a,int b)
{
return a+b ;
}

vb代码:
Option Explicit
Private Declare Function Addtwo Lib "Add" (ByVal a, ByVal b) As Long



Private Sub Command1_Click()

Dim c As Long
c = Addtwo(1, 2)
MsgBox c

End Sub
谢谢!
...全文
113 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lactoferrin 2011-04-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 rabbit8175 的回复:]

引用 6 楼 dbcontrols 的回复:
Private Declare Function Addtwo Lib "Add.dll" (ByVal a As Long, ByVal b As Long) As Long
改过来了,仍然提示找不到入口点。
[/Quote]
运行link /dump /exports add.dll或者用depends.exe看一下导出符号名是什么
dbcontrols 2011-04-26
  • 打赏
  • 举报
回复
再加上路径试试

[Quote=引用 8 楼 rabbit8175 的回复:]
引用 6 楼 dbcontrols 的回复:
Private Declare Function Addtwo Lib "Add.dll" (ByVal a As Long, ByVal b As Long) As Long
改过来了,仍然提示找不到入口点。
[/Quote]
rabbit8175 2011-04-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 dbcontrols 的回复:]
Private Declare Function Addtwo Lib "Add.dll" (ByVal a As Long, ByVal b As Long) As Long
[/Quote]改过来了,仍然提示找不到入口点。
rabbit8175 2011-04-26
  • 打赏
  • 举报
回复
回复3楼:有def文件
里面是这么写的:
LIBRYRY Add
EXPORTS Addtwo
dbcontrols 2011-04-26
  • 打赏
  • 举报
回复
Private Declare Function Addtwo Lib "Add.dll" (ByVal a As Long, ByVal b As Long) As Long
rabbit8175 2011-04-26
  • 打赏
  • 举报
回复
回复2楼:能具体指出来吗?谢谢
东方之珠 2011-04-26
  • 打赏
  • 举报
回复
找不到dll入口点 ,一般来说是API函数名不对,从网页上复制的程序往往API函数名含有空格,还有API要认大小写(这一点跟C语言一样)。
jiashie 2011-04-26
  • 打赏
  • 举报
回复
vc中生成dll时有没有def文件?
贝隆 2011-04-26
  • 打赏
  • 举报
回复
你的声明有问题

7,757

社区成员

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

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