首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将WideString转换为PWideChar

将WideString转换为PWideChar
EN

Stack Overflow用户
提问于 2015-04-09 08:58:35
回答 1查看 3.9K关注 0票数 1

我使用Nicomsoft OCR库对Delphi中的OCR图像进行处理。它对我的任务很好,它有Delphi单元包装器,所以在Delphi中使用它很容易。但是,当我将空字符串作为参数值传递给一些OCR函数时,Delphi调试器会显示“范围错误”消息。我检查了包装程序代码,发现DLL库函数接受PWideChars作为参数,而包装器则接受WideString。在单元包装器内部有以下转换:

代码语言:javascript
复制
function CallSomeOCRFunction(a: WideString);
var b: PWideChar;
begin
  b := @a[1];
  CallSomeDLLFunction(b); //passing "b" to DLL function that accepts PWideChar
  //.....

我做了一些研究,发现许多常见问题提供了这样的转换,例如:http://www.delphibasics.co.uk/RTL.asp?Name=PWideChar

如果"a“不是空字符串,但对于空字符串则会导致"Range”错误,则该方法有效。即使WideString变量是空字符串,如何正确地获得指向第一个字符的指针?据我所知,即使字符串是空的,它也必须包含零字符,PWideChar变量必须指向它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-09 09:06:46

使用PWideChar()强制转换,如文档中所述。就你的情况而言,应该是:

代码语言:javascript
复制
CallSomeDLLFunction(PWideChar(a));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29534067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档