这里似乎有些混淆。将文件添加到链接器输入是针对静态链接库(.lib)的。对于静态链接库,代码只是在编译时复制到程序中。动态链接库(.dll在Windows中)位于不同的文件(dll)中,并在运行程序时由程序加载。要访问dll中的函数,有两种主要方法:,c++,dll,C++,Dll" /> 这里似乎有些混淆。将文件添加到链接器输入是针对静态链接库(.lib)的。对于静态链接库,代码只是在编译时复制到程序中。动态链接库(.dll在Windows中)位于不同的文件(dll)中,并在运行程序时由程序加载。要访问dll中的函数,有两种主要方法:,c++,dll,C++,Dll" />

从C++; 我在DLL中有一个函数,我想从C++应用程序调用它。DLL也是用C++编写的,它有一个DEF文件,它显示了DLL中的函数。我正在使用visual studio 2010,通过在链接器“附加库目录”中添加dll目录,然后在链接器的“输入”中添加DLLname.lib,将其配置为使用dll文件。现在dll中的所有名称空间都可用,但是我需要的函数不可用,因为它们不在任何名称空间下。如何访问这些函数?这些函数在dll中声明为这样 #include "stdafx.h" #include <stdio.h> __declspec(dllexport) int somefunction() { ...... return SomeValue } #包括“stdafx.h” #包括 __declspec(dllexport)int somefunction() { ...... 返回某个值 } 我的问题是如何通过它的DLL访问C++应用程序中的某个函数。 < P>这里似乎有些混淆。将文件添加到链接器输入是针对静态链接库(.lib)的。对于静态链接库,代码只是在编译时复制到程序中。动态链接库(.dll在Windows中)位于不同的文件(dll)中,并在运行程序时由程序加载。要访问dll中的函数,有两种主要方法:

从C++; 我在DLL中有一个函数,我想从C++应用程序调用它。DLL也是用C++编写的,它有一个DEF文件,它显示了DLL中的函数。我正在使用visual studio 2010,通过在链接器“附加库目录”中添加dll目录,然后在链接器的“输入”中添加DLLname.lib,将其配置为使用dll文件。现在dll中的所有名称空间都可用,但是我需要的函数不可用,因为它们不在任何名称空间下。如何访问这些函数?这些函数在dll中声明为这样 #include "stdafx.h" #include <stdio.h> __declspec(dllexport) int somefunction() { ...... return SomeValue } #包括“stdafx.h” #包括 __declspec(dllexport)int somefunction() { ...... 返回某个值 } 我的问题是如何通过它的DLL访问C++应用程序中的某个函数。 < P>这里似乎有些混淆。将文件添加到链接器输入是针对静态链接库(.lib)的。对于静态链接库,代码只是在编译时复制到程序中。动态链接库(.dll在Windows中)位于不同的文件(dll)中,并在运行程序时由程序加载。要访问dll中的函数,有两种主要方法:,c++,dll,C++,Dll,使用,与使用dllexport导出函数的方式类似 使用加载DLL,然后使用获取指向函数的指针。如果您正在使用此方法,另一件您应该注意的事情是,您可能应该在导出的函数上使用extern“C”,以避免。如果在使用GetProcAddress查找函数时遇到问题,可以使用检查DLL中的函数名-它们可能会根据使用的函数名进行轻微修改 我认为海报是在寻求隐性链接方面的帮助。 及

使用,与使用dllexport导出函数的方式类似

  • 使用加载DLL,然后使用获取指向函数的指针。如果您正在使用此方法,另一件您应该注意的事情是,您可能应该在导出的函数上使用
    extern“C”
    ,以避免。如果在使用
    GetProcAddress
    查找函数时遇到问题,可以使用检查DLL中的函数名-它们可能会根据使用的函数名进行轻微修改


  • 我认为海报是在寻求隐性链接方面的帮助。 及