标题:调用外部DLL出错
取消只看楼主
happynight
Rank: 8Rank: 8
等 级:贵宾
威 望:15
帖 子:807
专家分:760
注 册:2008-4-26
结帖率:87.93%
已结贴  问题点数:20 回复次数:3 
调用外部DLL出错
两个函数 第一个能成功调用 第二个报错
代码如下:
#include <iostream.h>
#include<windows.h>
void main(void)
{

typedef int (*findEqm)(char *IP, BOOL Flag);                //
typedef int (*DataRtn) (char *desIP, int eqmNo, int bits);  //
findEqm Fun=NULL;
DataRtn Fun2=NULL;

HINSTANCE hDLL;
hDLL=LoadLibrary("SetTimedll.dll");

Fun=(findEqm)GetProcAddress(hDLL,"findEqm");
Fun2=(DataRtn)GetProcAddress(hDLL,"DataRtn");

if(Fun)
{
    int A=Fun("192.168.0.30",1);
    cout<<"结果为"<<A<<endl;
}
if(Fun2)
{   
    int B=Fun2("192.168.0.30",1,6);              //出错"the value of esp was not properly ...."
    cout<<"结果为:"<<B<<endl;
}
FreeLibrary(hDLL);//卸载MyDll.dll文件;
}
搜索更多相关主题的帖子: DLL 
2010-10-26 17:29
happynight
Rank: 8Rank: 8
等 级:贵宾
威 望:15
帖 子:807
专家分:760
注 册:2008-4-26
得分:0 
那个DLL是一个商业软件的 没有原代码
2010-10-27 08:47
happynight
Rank: 8Rank: 8
等 级:贵宾
威 望:15
帖 子:807
专家分:760
注 册:2008-4-26
得分:0 
以下是引用yangang2在2010-10-27 13:14:20的发言:

你那个函数是不是传值出了问题,或者加载失败你可以增加语句if(!Fun2) {cout<<"函数加载失败"; return;}来验证
按你的方式加了测试语句 能正常加载函数
2010-10-29 10:37
happynight
Rank: 8Rank: 8
等 级:贵宾
威 望:15
帖 子:807
专家分:760
注 册:2008-4-26
得分:0 
多谢各位 估计这个函数的调用是不适合用VB来处理的吧 已经放弃了
2010-11-01 13:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-324064-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.230648 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved