问题标签 [name-decoration]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 找出名字装饰
我有一个与标准第三方客户端集成的 ActiveX DLL。为此,我必须包含一个自定义 DEF 文件、一个代理链接器,并自初始化 COM 库。
当我用我创建的客户端测试我的 ActiveX DLL 时,它运行良好。但是,当我在第三方客户端中包含 ActiveX DLL 时,它会在某些函数调用中崩溃。我相信崩溃是命名装饰不匹配的结果。
有没有办法验证第三方客户端程序需要的名称装饰?
谢谢,
c++ - VC++ 防止所有符号名称装饰
我正在开发一个 DLL,它将使用 _stdcall 调用转换从另一种语言中使用(因此没有导入库并包括 dll 的头文件)。问题是 VC++ 似乎总是对其导出的符号进行一些名称修饰。我看到的所有引用都说使用 extern "C" 但这似乎仍然给我留下了一个前导下划线和一个 @ 加上导出名称后的一个数字。
最糟糕的一点是在目标语言中加载扩展 dll 的自动方法本质上是“func_name = GetProcAddress(dll,“func_name”)”所以使用未修饰的名称 GetProcAddress 失败,并且使用修饰的名称它抱怨非法变量名称( @ 不允许) :(
如何让 VC++ 导出完全没有名称装饰的东西?
垃圾箱文件
00011366 _test@8 = @ILT+865(_test@8)
c++ - C++ 名称空间混淆 - std:: vs :: vs 调用 tolower 时没有前缀?
为什么是这样?
transform(theWord.begin(), theWord.end(), theWord.begin(), std::tolower);
- 不工作
transform(theWord.begin(), theWord.end(), theWord.begin(), tolower);
- 不工作
但
transform(theWord.begin(), theWord.end(), theWord.begin(), ::tolower);
- 确实有效
theWord 是一个字符串。我是using namespace std;
为什么它与前缀一起使用::
而不是与std::
或不一起使用?
谢谢你的帮助。
c++ - 在 C++ 中的 dll 中使用函数?
我在类名之前使用 __declspec(dllexport) 在 C++ 中创建了一个 dll。现在,当我尝试在另一个 c++ 程序中使用它时,它会在两者之间崩溃。当我调试它时,我发现函数指针根本没有初始化。请帮帮我。
提前致谢。
c++ - 如何解决 Visual C++ 2005 的“超出装饰名称长度,名称被截断”警告?
例如,假设出于某种原因我有一段看起来像这样的代码:
我收到如下警告:
有什么办法可以重写那个该死的长向量而不是得到那个警告?我仍然希望数据结构相同,但没有收到警告。我不想禁用警告。可能的?
注意:这是 Visual Studio 2005
....如果您真的很好奇我为什么要使用如此可怕的数据结构,那是由自动生成的代码引起的。
c++-cli - 使用 libcurl 链接错误
我在项目中包含并使用 libcurl,但出现此错误
和别的。我用 Visual Studio C++ 编码我搜索了那些,我读到这个库可能有问题,它是从 C 文件编译的。我的项目在 c++/cli 中。你认为这是问题所在吗?我能做什么?
这包括我正在使用的
那是代码
c - __stdcall 名称装饰的语法是什么?
我有一个调用一组函数的程序,如下所示:
如果名称修饰不匹配,链接器会显示如下错误:
我的理解是_stdcall
语法是一个'_' + 'name of the function' + '@' + 'number of arguments * 4'
.
那么,为什么链接器要求进行?VB_Create@@YGHPAD@Z
名称修饰呢?这是什么标准?
c - 从 C++/CLI Visual Studio 2010 调用使用 VS 2005 编译的本机 C - 无法打开 .lib 文件...
您好我想将函数从 C dll 调用到 C++/CLI。C 函数声明为 extern。我按照本教程链接 dll:http ://social.msdn.microsoft.com/Forums/en/Vsexpressvc/thread/84deabaa-ae82-47cc-aac0-592f5a8dfa22 然后在我的 C++/CLI dll 中我有以下:
我知道我应该只在 .h 中给出签名,然后在 .cpp 中编写功能代码,但为了测试,我将它写在同一个地方。这些是我得到的错误:
我已经尝试查找它们,但除了它们是由于链接错误导致的事实之外,找不到太多关于它们的信息......
更新:项目组织...
因此,对于我的 c++/cli 项目,我编写了一个 .hpp,如下所示,其中包括我的 880 多个标头:
以下是 gtobf.h:
然后在我的 c++/cli 包装器中,我包含了我的 all.hpp,其中包含了所有其他头文件……尽管如此,我仍然遇到错误。
我确定该函数已导出,因为我使用 P/Invoke 使用了 C# 中的 dll ...
!!!!!!!!!!!!!!!编辑:
我没有指出 lib 的正确路径...现在我已经解决了这个问题,我收到 LNK1104 错误,说它无法打开我的 .lib
c++ - mingw32 g++ 和 stdcall @suffix
我声明了一些原型化的 C++ 函数,如下所示:
我也有一些导出的第三方 dll function()
- 根本没有名称装饰。undefined reference to function@...
由于 MinGW 的 stdcall @-suffix,我无法构建我的 exe 或 dll 。如何在没有 @... 的情况下获取目标文件,只是简单的函数名?