在Visual Studio中调用Netbeans编写的DLL

Call DLL which is written in Netbeans in Visual Studio

本文关键字:DLL Netbeans 调用 Visual Studio      更新时间:2023-10-16

假设我根据这个youtube教程在Netbeans中创建了一个DLL,我可以继续从另一个c++源文件调用DLL。这里是一步一步的过程,尽管DLL使用Netbeans工作得很好!

我创建了一个新的空项目(在我的情况下Visual c++ Win32控制台应用程序)。我在源文件夹中添加了一个c++源文件。这是我的代码

# include". . SampleLib SampleLib.h"
# include
Int main() {
SampleClass *ptr = new SampleClass();
ptr -> TestFunc ();
返回0;}
然后我输入包括目录,库目录和链接器输入,最后在额外的依赖项下。dll文件

但是,我不能从Microsoft Visual Studio 2010(目前使用Express版本)的c++源文件中调用它。

我包括目录和头文件。然后我将源文件链接到DLL的"附加依赖"处。

我的错误信息是:

1>C:UsersmisefeDocumentsNetBeansProjectsSampleLibdistDebugMinGW-WindowslibSampleLib.dll: fatal error LNK1107: un ltige oder beschädigte date: Lesen bei 0x2E0 night möglich.

恐怕问题是没有创建*.lib文件。我正在遵循如何在MSVS2010中实现DLL的另一个教程。唯一的区别是,而不是添加*.lib文件在额外的依赖关系是我的*.dll文件。显然,这是一个糟糕的尝试,但这是我能想到的最好的办法。

有谁知道如何:

  1. 在Netbeans
  2. 中创建*.lib文件
  3. 或连接我的Netbeans DLL与MSVS2010正确或分别解决我的问题?

阅读Netbeans C/c++项目快速入门教程-特别注意步骤创建C和c++项目中的向导-您可以在静态或动态库项目之间进行选择。

选择static创建LIB,选择dynamic创建DLL

如果您只使用DLL,则可以使用LoadLibrary函数。它获取DLL的路径并加载它。然后使用getprocaddress方法获取指向DLL中该方法的指针。但它有一个巨大的缺点。实际上,由于c++名称混淆,DLL中的方法名称和代码中的方法名称将不同。如果你真的想只使用DLL,你可以使用extern "c"来平化你的类。

如果你可以使用静态库,你可以这样做使用netbeans创建静态库
创建一个新的c++项目
-选择C/c++静态库

可以通过以下步骤在visual studio中加载库:

  1. 在代码中添加#include语句

  2. 在->
    中添加include目录配置属性/vc++目录/Include目录(点击编辑,添加新条目)

  3. 为*添加一个库目录。库文件->
    配置属性/vc++目录/库目录(点击编辑,添加新条目)

  4. 添加要链接的库→配置属性/链接器/输入/附加依赖(example library.lib;

    )
  5. 将DLL文件放入最终可执行文件目录