将DLL链接到项目不起作用

时间:2015-12-31 00:56:42

标签: c++ windows dll linker

我创建了一个名为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;搜索目录,

  • 编译器已添加C:\ Documents and Settings \ user \ Desktop \ Practice Projects \ Test Lib
  • 链接器已添加C:\ Documents and Settings \ user \ Desktop \ Practice Projects \ Test Lib \ bin \ Debug

在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相关的结果看起来像答案。有人能告诉我我应该寻找的是什么吗?

0 个答案:

没有答案