如何避免Visual c++混淆我的DLL函数的名称
How to avoid Visual C++ from mangling the names of my DLL functions
我在这里暴露了同样的问题。我用的是Visual c++ Express 2010。
我试着声明extern"C",并改变选项项目+属性,链接器,调试,生成调试信息= No。我的函数名在每次编译时都被打乱了。
看完jjones的回答后,我将调用约定从StdCall改为Cdecl,然后我的函数名称在编译的dll中是正确的。但我需要StdCall,因为我使用这个dll从VB6 (VB6抗议时使用其他调用约定)。所以,每次我用StdCall调用约定进行编译时,我的函数名又被打乱了。
我怎样才能避免我的函数名与StdCall调用约定混淆?或者有一种方法来调用一个函数在Dll与cdecl调用约定从VB6?
在阅读和阅读之后,我发现(也许)没有办法避免与StdCall调用约定的名称混淆。
我想从VB6调用我的函数,所以这里有一个实际工作的解决方案:使用别名声明函数:
Declare Function prettyname Lib "mydll.dll" Alias "_prettyname@16" () As Integer
当然,最好使用extern "C"
,这样名字就不会被弄乱。
相关文章:
- 使用c#访问c++dll中带有char*参数的函数时发生AccessViolationException
- Visual c ++,使用字符串引用/指针调用 dll 函数
- 来自 DLL 的函数调用 [表观调用的括号前面的表达式必须具有(指向-)函数类型]
- C++ DLL 引用C++.exe中的函数和类
- 如何使用导出的函数交叉编译 DLL
- 如何在窗口中使用注入的 dll 中的参数调用函数
- 在 Microsoft Access SQL 中调用自定义 DLL 函数时传递的内存地址无效
- 加载由 MATLAB Coder 生成的带有函数的 DLL,该函数调用外部函数
- PowerShell 使用结构类型参数调用 C++ DLL 的导出函数
- 从DLL导出函数,LoadLibrary()需要用TEXT转换的字符串才能编译而不会出错
- 从 C#-DLL 调用函数的 C++ 失败
- 如何在 DLL 内的成员函数中使用互斥/关键节
- 调用 "project" 函数和调用 DLL 函数之间的区别
- 函数指针分配在创建 DLL 后导致错误
- 从动态加载的 dll 内部调用C++函数
- 函数声明中的 WINAPI 标识符C++ DLL 入口点函数中的标识符
- LNK2019某些类函数,但不在其他类函数(DLL 中的模板类)上
- 从库导入函数./ DLL 文件
- 从 ntdll 调用 Nt 函数.dll在 Win32 环境中,C++
- 如何使用ctypes将python列表传递给C函数(dll)