求助,d6调用vc编译的dll失败

qq_30234925 qq_30234925 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
问题描述:
1、A.dll中调用了B.dll
2、新建一个exe工程,直接加载B.dll,无问题
3、新建一个exe工程,直接加载A.dll,(但是B.dll不放进执行目录),报错无法启动,因为找不到B.dll
4、新建新建一个exe工程,直接加载A.dll,并把B.dll放进执行目录
4.1、如果静态加载,即function XXX: integer; cdecl; external 'XXXX.dll' name 'XName';直接报内存访问错误
4.2、如果动态加载,loadlibrary返回0,getlasterror返回998
求各路大神赐教。
...全文

相关推荐

VC2010调试运行库(msvcp120d.dll、msvcr120d.dll) 32位+64位

如果无法注册到系统,可以直接拖对应的DLL到EXE目录

洛泺

VC6.0依赖分析工具实战:深度解析msvcr90d.dll与ieshims.dll

在Windows平台的软件开发历史中,Visual C++ 6.0(简称VC6.0)作为微软早期集成开发环境的重要代表,广泛应用于20世纪末至21世纪初的C++项目开发。尽管其界面陈旧、标准支持有限,但由于大量遗留系统的存在,至今仍有一定使用场景。VC6.0编译生成的应用程序通常依赖多个动态链接库(Dynamic Link Library, DLL),这些DLL承担着运行时支持、系统调用转发、兼容性适配等关键功能。其中,和。

新农仓

ToolkitPro1340vc90D.dll

vc6和vs2008(也就是vc8)对字符处理是不同的

understand125

vc dll lib资源库

自己在VC编译时,出现msvcr90d.dll的文件找不到的问题,下载了这个工具,其中包含其他.dll文件,安装以后就可以使用了。分享下

carrotye

MingW VC 之.a .lib .dll .def 关系

MSVC vs. MinGW 之 (lib,dll,def,obj,exe) vs (a,dll,def,o,exe) 玩转攻略手记 一份粗糙的研究记录,有待补完和整理。 MinGW: c -> o gcc -c a.c c -> exe gcc a.c libs.o -o a.exe (从主程序a.c,附加libs,生成a.exe) o -> exe gcc a.o b.o ... -o main.exe c -> dll,def,a gcc a.c -shared -o a.dll -Wl,--output-def,a.def,--out-implib,liba.a a -> dll a2dll liba.a dll -> a: dlltool --dllname a.dll --def a.def --output-lib liba.a (需要def文件) a -> def: dumpbin /exports lib.a > lib.def (在windows上调用,def需要修改) dll -> def : pexports a.dll -o > a.def (这里的-o是指给函数标序号) lib -> def : reimp -d a.lib lib -> a: (for __cdecl functions in most case) reimp a.lib; (for __stdcall functions) MSVC: c -> lib cl /LD a.c (注意已经定义了export列表) c -> dll cl /LD a.c c -> obj cl /c a.c c -> exe cl a.c /out:a.exe dll ->lib lib /machine:ix86 /def:a.def /out:a.lib (需要def文件) obj ->lib lib a.obj b.obj... /out:mylib.lib dll ->def DUMPBIN a.dll /EXPORTS /OUT:a.def (生成的def需要做修正) lib ->def reimp -d a.lib (这个要在MSYS+MinGW下用) 关于这些工具的适用范围可以很容易的理解和记忆。 dll和exe都是PE文件,所以可以使用pexports. lib和a是静态库文件,都是归档类型,不是PE格式。所以不能使用pexports. dll可以使用dlltool. lib可以使用lib, 和reimp(lib->a工具) 所有的bin文件,包括dll,exe,lib,a都可以使用dumpbin. 参考: http://hi.baidu.com/kaien_space/blog/item/5e77fafa2ba9ff16a8d3110a.html Mingw官网文档: http://www.mingw.org/wiki/MSVC_and_MinGW_DLLs http://oldwiki.mingw.org/index.php/CreateImportLibraries http://www.mingw.org/wiki/FAQ http://hi.baidu.com/opaquefog/blog/item/9b21b6deb324e25dccbf1ab7.html http://qzone.qq.com/blog/8330936-1238659272 http://hi.baidu.com/jzinfo/blog/item/b0aa1d308de99f9da8018e00.html 本篇测试用代码: 1. main.cpp #include #include #include "mylib.h" using namespace std; int main() { char str[]="Hello world!"; printhello(str); return 0; } 2. mylib.cpp #include #include #include "mylib.h" using namespace std; void EXPORT printhello(char *str) { cout << str << endl; } 3. mylib.h #define EXPORT __declspec(

杨宗卫的爸爸
评论
收藏 已收藏
分享
返回顶部
qq_30234925
Windows SDK/API 1,184 成员 22,326 内容