【发布时间】:2011-06-02 13:16:51
【问题描述】:
我想在汇编中编写一个自定义模块并让我的 C++ 函数调用它。我不想从头开始,而是想用 C 编写“草稿”,让编译器生成蓝图汇编源,即 /FA 编译器选项生成的列表文件。
但是,我发现生成的所有过程名称都已经是修饰形式。此外,MASM将再次进行自己的名称装饰。因此,如果我在不首先手动取消修饰编译器生成的过程名称的情况下组装我的版本,我会收到链接器错误,因为函数名称不匹配。
是否可以防止这种重复的名称装饰?
【问题讨论】:
-
问题真的和汇编无关?
-
不要忘记大多数编译器都支持内联汇编。这可能会让你到达你需要去的地方,而不必担心 C++ 和汇编器之间的接口
-
不,内联汇编不再是一个好的选择,除非不担心将其升级到 x64。 x64 不支持内联汇编,给旧代码带来了很多麻烦。
-
x64 编译器不支持内联汇编,因为它通常不需要,并且会干扰优化其余代码。你确定你真的可以比编译器做得更好吗?
标签: c++ masm name-decoration