VB6调用VC6生成的dll文件,实时错误 ‘453’,找不到入口点

阿布_Abu 2013-11-08 05:15:48
VC6中的函数

extern "C" __declspec(dllexport) LONG _stdcall getlUserID(char *ip,char *name,char *password,int port);

LONG _stdcall getlUserID(char *ip,char *name,char *password,int port){
//初始化SDK
int a = TFC_NET_Init();

//登陆用户实体
UserLoginInfo_t UserLoginInfo;

//实体类赋值
strcpy(UserLoginInfo.userIPAddr.ipV4, ip);
strcpy(UserLoginInfo.szUserName, name);
strcpy(UserLoginInfo.szPassword, password);
//端口
UserLoginInfo.port = port;
//返回-1表示注册登陆失败
LONG lUserID = TFC_NET_Login(&UserLoginInfo, NULL);
if (lUserID == -1)
{
//查看原因
printf("Login to Device failed! Error : %d\n", TFC_NET_GetLastError());
//printf("Login to Device failed! Error : %s\n", TFC_NET_GetErrorMsg(errorNO));
//停止运行
return -1;
}
return lUserID;
}
生成dll

在VB6中调用:
Private Declare Function getlUserID Lib "Serverdll.dll" (ByVal ip As String, ByVal name1 As String, ByVal Password As String, ByVal port As Integer) As Long
Dim ip As String
Dim name1 As String
Dim Password As String
Dim port As Integer

Private Sub Command1_Click()
MsgBox "测试开始"

ip = "192.168.0.120"
name1 = "admin"
Password = "admin"
port = 1115
lUserID = getlUserID(ip, name1, Password, port)

MsgBox lUserID

MsgBox "测试结束"
End Sub

运行的时候报错 :实时错误‘453’ 找不到DLL入口点 getlUserID in Serverdll.dll
帮忙我看看是什么原因 ,我刚接触这东东 实在百度不出来了
...全文
389 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
of123 2013-11-11
  • 打赏
  • 举报
回复
一般情况下不需要这样做,除非你需要隐藏你的函数入口点。 在 .def 文件中声明: getlUserID @16 即可。
阿布_Abu 2013-11-11
  • 打赏
  • 举报
回复
引用 3 楼 bakw 的回复:
重要的一点在C下函数有没有定义输出名称,比如: getlUserID @1
我在VB6中声明 少了Alias "_getlUserID@16" 这句
PctGL 2013-11-11
  • 打赏
  • 举报
回复
编译后就行了。。。
阿布_Abu 2013-11-10
  • 打赏
  • 举报
回复
引用 2 楼 worldy 的回复:
Private Declare Function getlUserID Lib "Serverdll.dll" (ByVal ip As String, ByVal name1 As String, ByVal Password As String, ByVal port As Integer) As Long 这个声明有点问题 Private Declare Function getlUserID Lib "Serverdll.dll" (ByVal ip As String, ByVal name1 As String, ByVal Password As String, ByVal port As long) As Long 另外,你必须将dll放进系统目录下
问题在哪大神 给出改正啊
笨狗先飞 2013-11-09
  • 打赏
  • 举报
回复
重要的一点在C下函数有没有定义输出名称,比如: getlUserID @1
舉杯邀明月 2013-11-09
  • 打赏
  • 举报
回复
可不可以把你的那个 DLL 上传来看看?
worldy 2013-11-08
  • 打赏
  • 举报
回复
Private Declare Function getlUserID Lib "Serverdll.dll" (ByVal ip As String, ByVal name1 As String, ByVal Password As String, ByVal port As Integer) As Long 这个声明有点问题 Private Declare Function getlUserID Lib "Serverdll.dll" (ByVal ip As String, ByVal name1 As String, ByVal Password As String, ByVal port As long) As Long 另外,你必须将dll放进系统目录下
threenewbee 2013-11-08
  • 打赏
  • 举报
回复
按理说不会,检查下你的系统中是否存在另一个早期版本的Serverdll.dll,并且它没有getlUserID。

1,486

社区成员

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

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