创世魂 发表于 2023-5-20 09:26:09

【解决方案】火山视窗文本型转换为LPCWSTR(lstrlenW封装)

LPCWSTR一般出现在Unicode api中,也就是W版本的api,例如:lstrlenW 用来获取字符串长度。







在火山中想对于A版本的来说就简单很多……
直接@<参数_文本>.GetText () 取出火山c++的文本类型后,强制转换成LPCWSTR即可。


封装如下:

<火山程序 类型 = "通常" 版本 = 1 />

方法 取文本长度W <公开 类型 = 整数 @禁止流程检查 = 真>
参数 参数_文本 <类型 = 文本型>
{
    @ return lstrlenW((LPCWSTR)@<参数_文本>.GetText ());
}




PS:一般都没问题,有问题的可以发帖问……



server 发表于 2023-5-20 12:56:52

<火山程序 类型 = "通常" 版本 = 1 />

方法 _寻找窗口 <公开 静态 类型 = 变整数 @嵌入式方法 = "">
参数 类名 <类型 = 文本型 @默认值 = 空对象>
参数 标题 <类型 = 文本型 @默认值 = 空对象>
{
    @ (INT_P)FindWindowW((LPCWSTR)@<类名>.GetText(),(LPCWSTR)@<标题>.GetText())
}

你试试这个。

Xelloss0618 发表于 2023-5-20 14:18:31

server 发表于 2023-5-20 12:56
方法 _寻找窗口
参数 类名
参数 标题


<火山程序 类型 = "通常" 版本 = 1 />

方法 _寻找窗口 <公开 静态 类型 = 变整数 @禁止流程检查 = 真>
参数 类名 <类型 = 文本型 @默认值 = 空对象>
参数 标题 <类型 = 文本型 @默认值 = 空对象>
{
    @ return (INT_P)FindWindowW(@<类名>.IsEmpty() ? NULL : @<类名>.GetText(), @<标题>.IsEmpty() ? NULL : @<标题>.GetText());
}


可以再改一下,因为这两个参数有需要用NULL
页: [1]
查看完整版本: 【解决方案】火山视窗文本型转换为LPCWSTR(lstrlenW封装)