使用外部"C++"导入 DLL
import DLL with extern "C++"
当我写DLL时,我通常使用类似的代码
extern "C"
{
//some declarations
}
但是,我如何才能从以这种方式编写的DLL中动态加载函数
extern "C++"
{
__declspec(dllexport) int Foo(int x)
{
return 42;
}
}
当然,我可以通过编写类似的代码来手动装饰名称
int (*Foo)(int);
Foo = (int(*)(int)) GetProcAddress(hModule, "?Foo@@YAHH@Z");
它会起作用,但这应该是一些正常的方法。
如果您真的想导出C++函数,那么名称就会被破坏,正如您所发现的那样。
您可以使用模块定义文件来导出具有特定序号的损坏函数。完成此操作后,可以使用GetProcAddress
通过以下顺序导入:
Foo = (int(*)(int)) GetProcAddress(hModule, MAKEINTRESOURCE(FOO_ORDINAL));
相关文章:
- 导入库可以跨dll版本工作吗
- 为什么导入Mixed native/CLR lib.dll的本机C++应用程序没有在Mixed lib.dll中的外部变
- 将 C# DLL 导入 C++ 以用于 JNI
- Dll在同一解决方案中从 c# 项目导入到 c++ 项目
- 如何链接 DLL 以供 LoadLibrary() 使用(在 Windows 上的 C++ 中)并从调用 exe 导入变
- .EXE是否可以使用间接导入的 DLL 中的符号?
- 链接器找不到导入的 DLL 的 LIB 文件
- Boost.Python 和导入 dll,"The specified module could not be found"
- 如何解决导入dll过程中Viual Studio中的并排配置错误
- C++ 使用 SWIG 和 Visual Studio 2017 在 python 中导入 DLL
- 在C++中导入 DLL 函数
- 导入 DLL 的工作方式不同(VS2003 到 VS2010,多线程到多线程 DLL)
- 通过在 C# 中导入 DLL 来重用C++函数
- C++ - 如何永久导入DLL文件
- 无法在C++应用程序中导入dll
- 从其他编译器导入dll
- 使用外部"C++"导入 DLL
- 试图在netbeans c++中导入DLL
- 在c#代码中导入DLL函数
- 如何使用自定义注册系统注册dll,并查看导入dll的可执行文件的PE