首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

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

2013-11-12 
VB6调用VC6生成的dll文件,实时错误 ‘453’,找不到入口点VC6中的函数extern C __declspec(dllexport) LONG

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

即可。

热点排行