You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MASM32中_itow_s函数链接问题:未定义符号crt__itow_s

关于MASM32中调用_itow_s的问题

用户提供的汇编代码如下:

push    0Ah             ; Radix
            push    2               ; fSizeInWords
            lea     eax, [ebp+DstBuf]
            and     dword ptr [ebp+DstBuf], 0
            push    eax             ; DstBuf
            push    7
            pop     ecx
            xor     edx, edx
            mov     eax, ebx
            div     ecx
            push    edx             ; Val
            call    _itow_s

将代码中的_itow_s修改为crt__itow_s后,出现错误提示:undefined symbol : crt__itow_s。以下是问题解答:

问题解答

1. _itow_s是否存在于msvcrt.lib中?

是的,_itow_s是微软C运行时库(CRT)提供的安全类型转换函数,确实存在于msvcrt.lib中。不同版本的MSVC CRT可能有细微的符号修饰差异,但标准的_itow_s符号是该库的标准导出项。

2. MASM32中正确调用_itow_s的方法

  • 使用原始函数名,不要加crt前缀:MASM32调用CRT函数时,直接使用_itow_s即可,手动添加crt__前缀会导致链接器无法识别符号,这是你出现错误的直接原因。
  • 确保链接msvcrt.lib:在MASM32的项目配置或链接命令中,必须明确指定链接msvcrt.lib,让链接器能找到该函数的实现代码。
  • 验证参数传递正确性:_itow_s遵循CDECL调用约定,参数从右到左压栈,你的代码中参数顺序(Radix → sizeInWords → DstBuf指针 → Val)完全匹配函数原型要求,这部分无需修改。

内容的提问来源于stack exchange,提问作者Tony

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 03:55:16