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的区别