递归火山软件开发平台

标题: 系统API调用传址问题 同样代码易语言正常 是我写的不对吗 [打印本页]

作者: dugouzi    时间: 2022-11-9 15:07
标题: 系统API调用传址问题 同样代码易语言正常 是我写的不对吗
StrToIntExA函数
将表示十进制数或十六进制数的字符串转换为整数。


易语言调用结果正常
(, 下载次数: 22)
火山调用结果是0 是我写的方式不对吗 请教各位老师该怎么解决
(, 下载次数: 18)


附问题源代码
(, 下载次数: 1)

作者: shuimiao    时间: 2022-11-9 15:23
火山里不能直接传入文本和字节集,要改成变整数,然后取文本指针()传址。另外火山要用
StrToIntExW,因为火山默认是用Unicode编码。

当然,如果你先用文本到多字节(),也可以用
StrToIntExA,只是传址变成取字节集指针。其它类型的传址用取变量地址。
作者: dugouzi    时间: 2022-11-9 16:05
shuimiao 发表于 2022-11-9 15:23
火山里不能直接传入文本和字节集,要改成变整数,然后取文本指针()传址。另外火山要用
StrToIntExW,因为火 ...

学习了,感谢解答!
作者: 创世魂    时间: 2022-11-9 16:13
调用系统api,参数不能直接用文本型、字节集类  。都要用变整数 走指针来操作。
作者: 乐易论坛    时间: 2022-11-9 16:40
本帖最后由 乐易论坛 于 2022-11-9 16:41 编辑

(, 下载次数: 14)
(, 下载次数: 16)
  1. typedef BOOL (WINAPI* StrToIntExW)(
  2.     PCWSTR     pszString,
  3.     int        dwFlags,
  4.    int        *piRet
  5. );
  6. HMODULE hShlwapi = ::GetModuleHandle(L"Shlwapi.dll");
  7. if(!hShlwapi) hShlwapi  = ::LoadLibraryW(L"Shlwapi.dll");

  8. StrToIntExW pStrToIntExW=(StrToIntExW)::GetProcAddress(hShlwapi, "StrToIntExW");
复制代码




作者: server    时间: 2022-11-9 20:12
基操勿六        
作者: dugouzi    时间: 2022-11-10 09:16
创世魂 发表于 2022-11-9 16:13
调用系统api,参数不能直接用文本型、字节集类  。都要用变整数 走指针来操作。 ...

感谢解答!
作者: dugouzi    时间: 2022-11-10 10:23
乐易论坛 发表于 2022-11-9 16:40

感谢揰掵佲老师解答,我觉的这种实现方法相对麻烦一点
作者: 乐易论坛    时间: 2022-11-10 11:19
dugouzi 发表于 2022-11-10 10:23
感谢揰掵佲老师解答,我觉的这种实现方法相对麻烦一点

易语言实际上差不多是这个意思...




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4