全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:904
推到 Plurk!
推到 Facebook!

關於XE7型別轉換問題

尚未結案
g9221712
高階會員


發表:144
回覆:344
積分:162
註冊:2006-07-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2015-08-26 15:24:44 IP:36.233.xxx.xxx 訂閱
各位前輩好:
因為想透過Delphi 呼叫NB的WebCAM 來取得影像
http://www.delphibasics.info/home/delphibasicssnippets/delphiwebcamcaptureexample
請教ㄧ下如下的CODE,要怎麼修改,因為會出現錯誤訊息。
[dcc32 Error] uWebcam.pas(55): E2010 Incompatible types: 'PAnsiChar' and 'PWideChar'

[code delphi]
procedure WebcamList;
var
x: cardinal;
names: string;
Descriptions: string;
begin
for x := 0 to 9 do
begin
setlength(names, 256);
setlength(Descriptions, 256);
if not CapGetDriverDescriptionA(x, pchar(names), 256, pchar(Descriptions), 256) then
continue;
// if not capGetDriverDescriptionA(x,PAnsiChar(Names),256,PAnsiChar(Descriptions),256) then continue;
if length(names) > 0 then
FormMain.combobox1.Items.Add(inttostr(x) ' ' names);
end;
end;
[/code]
------
「人們所以覺得寂寞,是因為他們會築牆,卻不會搭橋。」
程式寫的越久,卻發現自己越來越不會寫程式!
Ray_Lin
一般會員


發表:0
回覆:30
積分:11
註冊:2015-07-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2015-08-26 17:22:27 IP:114.32.xxx.xxx 未訂閱
請參考
http://stackoverflow.com/questions/18761248/how-to-convert-from-pansichar-to-pwidechar
pcplayer99
尊榮會員


發表:142
回覆:740
積分:591
註冊:2003-01-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2015-12-02 16:23:29 IP:120.236.xxx.xxx 訂閱
在 Delphi 支援 Unicode 以前,PChar 就是 C 的 PChar,也就是一个 Byte 的 Char 的 Pointer.

在 Delphi 支援 Unicode 以后,Char 是 2个 Byte 的 Char,也就是 WideChar。

所以,在支援 Unicode 的 Delphi 里面,以前很多用 Char 或者 PChar 的地方,改用了 Byte 和 TBytes。

本质上,PChar 就是一个连续的 Byte 排列的 RAM 的 Pointer。

所以,你可以自己做类型转换。把 PByte 转换为 PAnsiChar.
系統時間:2017-11-20 15:44:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!