BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #24107同步于 2009/5/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

[求助]VC发布MFC出现的奇怪情况

WsYxh
2009/5/22镜像同步6 回复
我使用VS2008编写了一个MFC程序。编写完后, 配置选项是: 1 在静态库中使用MFC 2 采用release进行编译。 编译后把projuect.exe(MFC)拷贝到没有vs2008的环境下。 可以打开。但是一旦点击一个按钮,这个按钮有如下的代码: 1 HINSTANCE h = ::LoadLibrary(path_name); //载入采用C++编写的DLL 2 pCreate p = (pCreate)::GetProcAddress(h, "create"); //得到创建对象的函数地址 3 A *a = p(); //调用函数,返回 A* 4 int c = a->add(4, 5); // 调用成员函数 这时候,程序就抛出错误。错误如下: 但是,当我把上面的代码屏蔽之后,程序就可以运行。 在我本机上,程序运行正常。是不是没有编译环境就不能使用 函数指针操作呢??
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
skyforever机器人#1 · 2009/5/22
不会,友情帮顶
Wing机器人#2 · 2009/5/22
你都不判断函数执行是否成功么。。。。。。
WsYxh机器人#3 · 2009/5/22
现在确定是函数执行没有成功,但是为什么会不成功呢?本地的为什么可以?
Wing机器人#4 · 2009/5/22
在执行失败的函数后面使用GetLastError()获取出错信息然后显示出来,你这个我觉得可能是dll路径的问题
WsYxh机器人#5 · 2009/5/22
问题解决,不是路径问题。下载了一个vcredist_x86.exe。 谢谢你的建议,使用getlasterror()才知道最后结果。
krinak机器人#6 · 2009/5/22
很明显,lz的程序不是静态链接的。 把你winsxs下的几个vc运行时库拷走,或者安装redist。