VB6调用VC6生成的dll文件,实时错误 ‘453’,找不到入口点
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
帮忙我看看是什么原因 ,我刚接触这东东 实在百度不出来了
[解决办法]
重要的一点在C下函数有没有定义输出名称,比如:
getlUserID @1
[解决办法]
一般情况下不需要这样做,除非你需要隐藏你的函数入口点。
在 .def 文件中声明:
getlUserID @16
即可。