Delphi中聲明如何轉成C++的聲明 |
尚未結案
|
sunnycoco99
一般會員 發表:2 回覆:3 積分:1 註冊:2004-11-16 發送簡訊給我 |
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
因為您沒有給完整的宣告,所以我無法試...
後來在網路上找到(可能是完整的)Source
http://www.lihuasoft.net/article/show.php?id=227 我把以下存成 uCodePageConverter.pas
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Unit Name : uCodePageConverter * Autor : Daniel Wischnewski * Copyright : Copyright c 2002 by gate(n)etwork. All Right Reserved. * Urheber : Daniel Wischnewski * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} unit uCodePageConverter; interface uses Windows; const IID_MLangConvertCharset: TGUID = '{D66D6F98-CDAA-11D0-B822-00C04FC9B31F}'; CLASS_MLangConvertCharset :TGUID = '{D66D6F99-CDAA-11D0-B822-00C04FC9B31F}'; type tagMLCONVCHARF = DWORD; const MLCONVCHARF_AUTODETECT: tagMLCONVCHARF = 1; MLCONVCHARF_ENTITIZE : tagMLCONVCHARF = 2; type tagCODEPAGE = UINT; const CODEPAGE_Thai : tagCODEPAGE = 0874; CODEPAGE_Japanese : tagCODEPAGE = 0932; CODEPAGE_Chinese_PRC : tagCODEPAGE = 0936; CODEPAGE_Korean : tagCODEPAGE = 0949; CODEPAGE_Chinese_Taiwan : tagCODEPAGE = 0950; CODEPAGE_UniCode : tagCODEPAGE = 1200; CODEPAGE_Windows_31_EastEurope : tagCODEPAGE = 1250; CODEPAGE_Windows_31_Cyrillic : tagCODEPAGE = 1251; CODEPAGE_Windows_31_Latin1 : tagCODEPAGE = 1252; CODEPAGE_Windows_31_Greek : tagCODEPAGE = 1253; CODEPAGE_Windows_31_Turkish : tagCODEPAGE = 1254; CODEPAGE_Hebrew : tagCODEPAGE = 1255; CODEPAGE_Arabic : tagCODEPAGE = 1256; CODEPAGE_Baltic : tagCODEPAGE = 1257; type IMLangConvertCharset = interface ['{D66D6F98-CDAA-11D0-B822-00C04FC9B31F}'] function Initialize( uiSrcCodePage: tagCODEPAGE; uiDstCodePage: tagCODEPAGE; dwProperty: tagMLCONVCHARF ): HResult; stdcall; function GetSourceCodePage( out puiSrcCodePage: tagCODEPAGE ): HResult; stdcall; function GetDestinationCodePage( out puiDstCodePage: tagCODEPAGE ): HResult; stdcall; function GetProperty(out pdwProperty: tagMLCONVCHARF): HResult; stdcall; function DoConversion( pSrcStr: PChar; pcSrcSize: PUINT; pDstStr: PChar; pcDstSize: PUINT ): HResult; stdcall; function DoConversionToUnicode( pSrcStr: PChar; pcSrcSize: PUINT; pDstStr: PWChar; pcDstSize: PUINT ): HResult; stdcall; function DoConversionFromUnicode( pSrcStr: PWChar; pcSrcSize: PUINT; pDstStr: PChar; pcDstSize: PUINT ): HResult; stdcall; end; CoMLangConvertCharset = class class function Create: IMLangConvertCharset; class function CreateRemote(const MachineName: string): IMLangConvertCharset; end; implementation uses ComObj; { CoMLangConvertCharset } class function CoMLangConvertCharset.Create: IMLangConvertCharset; begin Result := CreateComObject(CLASS_MLangConvertCharset) as IMLangConvertCharset; end; class function CoMLangConvertCharset.CreateRemote( const MachineName: string ): IMLangConvertCharset; begin Result := CreateRemoteComObject( MachineName, CLASS_MLangConvertCharset ) as IMLangConvertCharset; end; end.直接加入任一個 BCB 的專案中,直接按 build, BCB 就會幫我們轉換,得到 uCodePageConverter.hpp // Borland C Builder // Copyright (c) 1995, 1999 by Borland International // All rights reserved // (DO NOT EDIT: machine generated header) 'uCodePageConverter.pas' rev: 5.00 #ifndef uCodePageConverterHPP #define uCodePageConverterHPP #pragma delphiheader begin #pragma option push -w- #pragma option push -Vx #include接著就可以在需要用它的 Unit.cpp 中去 #include "uCodePageConverter.hpp"吃軟也吃硬 dllee.ktop.com.tw StatPlus 系統資源監測器 @ KTOP VMASK - ViewMove Automation Software Kernel
------
http://www.ViewMove.com |
sunnycoco99
一般會員 發表:2 回覆:3 積分:1 註冊:2004-11-16 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |