我创建了一个名为Test Lib的DLL项目:
// main.h
#ifndef __MAIN_H__
#define __MAIN_H__
#ifdef BUILD_DLL
#define DLL_EXPORT __declspec(dllexport)
#else
#define DLL_EXPORT __declspec(dllimport)
#endif
extern "C" {
DLL_EXPORT void print();
}
#endif
// main.cpp
#define BUILD_DLL
#include "main.h"
#include <iostream>
using std::cout;
using std::endl;
extern "C" {
DLL_EXPORT void print() {
cout << "Success" << endl;
return;
}
}
库成功构建,然后我创建了一个名为TestApp的控制台项目:
// main.cpp
#include <main.h>
int main() {
print();
return 0;
}
Test Lib和TestApp文件夹都在C:\ Documents and Settings \ user \ Desktop \ Practice Projects
中On Code :: Blocks - &gt;全局编译器设置 - &gt;搜索目录,
在TestApp中 - &gt;构建选项 - &gt;链接器设置,链接库已添加链接器已添加C:\ Documents and Settings \ user \ Desktop \ Practice Projects \ Test Lib \ bin \ Debug \ libTest Lib.dll.a
当我尝试运行程序时,我得到了#34; TestApp.exe - 无法找到组件&#34;
此应用程序无法启动,因为找不到Test Lib.dll。重新安装应用程序可能会解决此问题。
main()
返回0xC0000135
。这是我创建的第二个DLL库,因为我在第一个库中遇到了同样的错误,我试图复制错误。
在一次尝试中,我尝试将.dll.a链接更改为相对路径。在另一次尝试中,我将编译器和链接器目录向下移动到项目级别而不是全局级别,所有三个路径都是绝对格式。在第三次尝试中,我做了相同的但是以相对格式的所有三条路径。这些都不起作用,并给出同样的错误。
出了什么问题?
编辑:有人在评论中说我需要将DLL路径添加到系统设置中。当他这样说时,我不明白我需要做什么。我在创建和使用DLL时遵循this tutorial,这表示我需要将.lib和.dll添加到项目路径中,这是我在执行更多搜索之后所做的操作(Code :: Blocks isn&# 39;对于我常用的IDE,我的雇主给了我暂时使用的)。当我2天前创建我的第一个DLL时,这就是我所做的一切,一切正常。然后,我添加了一个新函数来检查整数是否为素数。昨天早上,我回来工作,DLL不再工作了。我一直试图找出问题直到现在,因为我没有做任何事情导致它停止工作(我只是添加了功能,打开计算机,离开工作并在第二天返回,然后重建DLL项目和运行控制台应用程序项目)。现在,我尝试搜索如何将DLL路径添加到系统设置,并且我没有看到任何与C ++和/或Code :: Blocks相关的结果看起来像答案。有人能告诉我我应该寻找的是什么吗?