我将字符串转换为AnsiChars有问题,函数看起来像
function PI_CST(ID: LongInt;
const szAxes: PAnsiChar;
const szNames: PAnsiChar): Bool cdecl ;
我想以这种方式使用这个功能:
bOk:=PI_CST(g_iD,'1',PAnsiChar(ComboBox1.Text));
但是当我以这种方式调用函数时它不起作用:bOk:=PI_CST(g_iD,'1','M-511.DD1')
它工作得很好(引号之间的值是const),有没有办法在这个函数中使用参数选择ComboBox?< / p>
答案 0 :(得分:2)
PAnsiChar(ComboBox1.Text)
这告诉编译器解释Text
属性返回的字符串,就像它是指向8位ANSI字符的指针一样。如果字符串是Unicode字符串,则强制转换无效,因为底层缓冲区使用16位文本进行编码。
您需要在转换之前将字符串转换为ANSI:
PAnsiChar(AnsiString(ComboBox1.Text))