dugouzi 发表于 2022-11-9 15:07:42

系统API调用传址问题 同样代码易语言正常 是我写的不对吗

StrToIntExA函数
将表示十进制数或十六进制数的字符串转换为整数。


易语言调用结果正常

火山调用结果是0 是我写的方式不对吗 请教各位老师该怎么解决



附问题源代码

shuimiao 发表于 2022-11-9 15:23:42

火山里不能直接传入文本和字节集,要改成变整数,然后取文本指针()传址。另外火山要用
StrToIntExW,因为火山默认是用Unicode编码。

当然,如果你先用文本到多字节(),也可以用
StrToIntExA,只是传址变成取字节集指针。其它类型的传址用取变量地址。

dugouzi 发表于 2022-11-9 16:05:29

shuimiao 发表于 2022-11-9 15:23
火山里不能直接传入文本和字节集,要改成变整数,然后取文本指针()传址。另外火山要用
StrToIntExW,因为火 ...

学习了,感谢解答!

创世魂 发表于 2022-11-9 16:13:32

调用系统api,参数不能直接用文本型、字节集类。都要用变整数 走指针来操作。

乐易论坛 发表于 2022-11-9 16:40:06

本帖最后由 乐易论坛 于 2022-11-9 16:41 编辑



typedef BOOL (WINAPI* StrToIntExW)(
    PCWSTR   pszString,
    int      dwFlags,
   int      *piRet
);
HMODULE hShlwapi = ::GetModuleHandle(L"Shlwapi.dll");
if(!hShlwapi) hShlwapi= ::LoadLibraryW(L"Shlwapi.dll");

StrToIntExW pStrToIntExW=(StrToIntExW)::GetProcAddress(hShlwapi, "StrToIntExW");


server 发表于 2022-11-9 20:12:45

基操勿六      

dugouzi 发表于 2022-11-10 09:16:51

创世魂 发表于 2022-11-9 16:13
调用系统api,参数不能直接用文本型、字节集类。都要用变整数 走指针来操作。 ...

感谢解答!

dugouzi 发表于 2022-11-10 10:23:27

乐易论坛 发表于 2022-11-9 16:40


感谢揰掵佲老师解答,我觉的这种实现方法相对麻烦一点

乐易论坛 发表于 2022-11-10 11:19:41

dugouzi 发表于 2022-11-10 10:23
感谢揰掵佲老师解答,我觉的这种实现方法相对麻烦一点

易语言实际上差不多是这个意思...;P
页: [1]
查看完整版本: 系统API调用传址问题 同样代码易语言正常 是我写的不对吗