目前在用Visual Studio 2012生成.dll文件
建立了一个.cpp文件后,将配置类型设为动态库,应用程序类型设为DLL,结果运行时系统反复报错:
无法打开文件D:\项目\Debug\abc.dll,或者无法启动.dll,这是怎么回事啊?
有可能是因为DLL 文件无法找到其所依赖的其他 DLL 文件而导致的。在这种情况下,可以尝试使用依赖关系解析工具(例如 Dependency Walker)来查找哪些 DLL 文件被 DLL 文件依赖。
此外,也有可能是因为DLL 文件所依赖的其他 DLL 文件在 Windows 系统中未被正确安装或注册,导致 DLL 文件无法启动。在这种情况下,可以尝试手动注册依赖的 DLL 文件,方法是:
打开命令提示符(在“开始”菜单中搜索“命令提示符”即可找到)。
输入 regsvr32 命令,并在命令后面跟上 DLL 文件的完整路径,例如:regsvr32 "C:\Windows\System32\abc.dll"。
按下 Enter 键执行命令。
如果注册成功,将会看到提示“DllRegisterServer 成功”的消息。
如果注册失败,则可能是 DLL 文件本身有问题,建议检查一下 DLL 文件是否被损坏。
你工程类型是动态库,你编译直接生成dll,这个过程就结束了
不要点运行,dll文件不能直接运行
如果你需要测试自己的dll,可以在一个解决方案下包含多工程,其中一个工程要能够生成exe文件,控制台或者winform都行
然后用exe去引用dll,再运行exe
DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被称为共享DLL文件。
在 Windows操作系统中,每个程序都可以使用该 DLL 中包含的功能来实现“打开”对话框。
DLL文件中存放的是各类程序的函数(子过程)实现过程,当程序需要调用函数时需要先载入DLL,然后取得函数的地址,最后进行调用。使用DLL文件的好处是程序不需要在运行之初加载所有代码,只有在程序需要某个函数的时候才从DLL中取出。这有助于促进代码重用和内存的有效使用。