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

VS2005 下的动态库疑问,该怎么解决

2012-02-03 
VS2005 下的动态库疑问我使用的开发环境是 VS2005 SP1,工程 为 Win32 Dll,仅是为了测试用,cpp部分代码如下

VS2005 下的动态库疑问
我使用的开发环境是 VS2005 SP1,工程 为 Win32 Dll,仅是为了测试用,cpp部分代码如下

extern "C" int _stdcall GetMpgInfo()
{
int aa = 100;
return aa;
}

def文件如下
LIBRARY MMpg.dll
EXPORTS
GetMpgInfo @1


调用程序为Delphi写的:
Function GetMpgInfo():Integer;stdcall;external 'MMpg.dll';

procedure TForm1.button1click(Sender:TObject)
begin
  GetMpgInfo();
end;


问题是: 我生成的debug版本的动态库,使用Depends打开看,发现 MSVCR80D.DLL 这里有个黄色的问号。
  下面则提示 MSVCR80D.Dll File not found in local directory or search path.
  当我用Delphi程序调用时,直接报错 “应用程序正常初始化(0xc000007b)失败。”

  但是当我使用 VC6.0 作为动态库开发时,则一切正常,生成的动态库使用 Depends 看也没有问题,Delphi 程序调用正
  常。

之前在网上看了一下,说是文件在fat32下会有类似的错误,我已经把那个fat32解决方案的选项选中,也升级了SP1,但是问题依旧,希望大家多多帮助



[解决办法]
VC2005有个Bug,创建一个Win32程序也会动态加载MFC,我解决的方法是在项目属性中把使用MFC的选项先改成静态连接,然后编译一下,再改回使用标准库,之后再编译就可以了。
[解决办法]
再仔细看看/MT选项是什么意思,跟/MTd的区别

热点排行