Assembly MASM GetTempPath和写入注册表方块?

Assembly MASM GetTempPath和写入注册表方块?,assembly,masm,Assembly,Masm,我试图获取Windows temppath并将其写入注册表,但注册表中的所有内容都是正方形 代码: 获取临时路径 main PROC invoke GetTempPath, 255,addr tmpFilePath` 写入注册表 WriteReg PROC invoke RegCreateKeyExW,HKEY_CURRENT_USER,offset regkey,NULL,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,

我试图获取Windows temppath并将其写入注册表,但注册表中的所有内容都是正方形

代码:

获取临时路径

main PROC
     invoke GetTempPath, 255,addr tmpFilePath`
写入注册表

WriteReg PROC 

    invoke RegCreateKeyExW,HKEY_CURRENT_USER,offset regkey,NULL,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,offset hIDKey,NULL

    .IF eax==ERROR_SUCCESS
        invoke lstrlenW,offset tmpFilePath
        add eax,eax
        add eax,2
        invoke RegSetValueExW,hIDKey,offset keyname,NULL,REG_SZ,offset buf,eax
        invoke RegCloseKey,hIDKey

您需要使用GetTempPathW才能获得与RegCreateKeyExW兼容的文件名。

对于初学者,您可能需要使用GetTempPathW。然后它神奇地工作了,如果您可以将此作为答案发布,我将接受它。非常感谢。
WriteReg PROC 

    invoke RegCreateKeyExW,HKEY_CURRENT_USER,offset regkey,NULL,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,offset hIDKey,NULL

    .IF eax==ERROR_SUCCESS
        invoke lstrlenW,offset tmpFilePath
        add eax,eax
        add eax,2
        invoke RegSetValueExW,hIDKey,offset keyname,NULL,REG_SZ,offset buf,eax
        invoke RegCloseKey,hIDKey