testing平台是windows 32bit。
所以基本上我想汇编+链接汇编代码片段在这些命令中:
nasm -fwin32 test.s cl test.obj /link msvcrt.lib
它说 :
error LNK2001: unresolved external symbol printf
在我的代码中,我有这样的函数调用:
GCC Inline-assembly:call DWord ptr
windows x64 ABI。 deBUGging器如何显示传递给函数的参数
与x86_64 windows调用约定混淆
立即打电话与靠近
在DLL中,函数表是如何构造的?
call printf
所以我把所有这些改成了
call _printf
它的工作。
我不熟悉windows上的编程,但有没有办法解决printf的外部符号?
因为我正在做一些自动转换任务,并且用_开始转换所有的函数调用应该是非常单调乏味的…
任何人都可以给我一些帮助..? 谢谢!
使用/ SAFESEH定制SEH处理程序
如何deBUGging需要用户input的NASM汇编程序?
调整示例DLL代码时获取无效图像
GetProcAddress不会返回LoadlibraryA的实际地址
NASM ReadConsoleA或WriteConsoleA缓冲区deBUGging问题
MSVCRT与使用Visual C ++编译的所有内容一样, 使用下划线前缀导出cdecl函数。 对于你自己的库,你可以重写这个行为 ,但是由于MSVCRT不是你的库,你不能改变它。
你真的将不得不让你的程序集调用使用下划线名称。 但是,nasm有一个选项--prefix ,这使得它更容易:– --prefix _ 。 (感谢弗兰克·科特勒提到这一点。)
总结以上是内存溢出为你收集整理的如何在win32控制台上parsing“printf”而不是“_printf”的符号?全部内容,希望文章能够帮你解决如何在win32控制台上parsing“printf”而不是“_printf”的符号?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)