【发布时间】:2011-09-14 08:16:53
【问题描述】:
我想在 def 文件中导出修饰函数名,如下所示:
LIBRARY Example
EXPORTS
??0__non_rtti_object@std@@QAE@ABV01@@Z=myfunc @1
问题是链接器在第一个 @-sign 处去掉了函数名,只放置 "??0__non_rtti_object" 到导出表中。我现在的问题是,如果有办法包括 @-字符也是?我使用 Visual Studio 2010。也许有人可以帮助我。
提前致谢,汉内斯。
【问题讨论】:
-
我很好奇为什么您首先要使用 .DEF 文件...您能详细说明一下吗?...您为什么不使用 @987654322 @/
__declspec(dllimport)限定词? -
感谢您的回答。问题是我需要有一个 dll 导出的特殊名称。我认为给出此类名称的唯一方法是使用 def 文件。 dllexport、dllimport 限定符仅导出/导入源代码中命名的函数。但我需要重命名这些函数。另一个原因是,您不能在 C 文件中使用 @-signs,而是像在修饰 C++ 函数时那样导出它。 @ymett 我已经尝试使用引号,但它不起作用。你让它工作了吗?如果是这样,您使用的是什么版本?
-
特殊名称是什么意思?带有“@”等特殊字符的名称? . . .或者,如果您只想重命名该函数,那么您不将所需的函数用另一个具有您想要的名称的函数包装起来吗? . . .是否要删除装饰(如果是,则使用
extern "C"限定符)? . . .你的目标还不清楚...... :-( -
是的,我的意思是像'@'这样的特殊字符。抱歉,如果我的问题不清楚。
-
对不起,我的回答错了。但是,我尝试了
?f@@YAHN@Z @2的函数int f(double),它运行良好。你的函数的实际签名是什么?
标签: c++