RainyMood 享受漫步在雨中、又不用全身濕透的浪漫,幫助你文思泉湧的雨聲產生器
好像很厲害的感覺,來試試看吧
2013/01/22
2013/01/10
2013/01/09
取得所有檔案頪型的版本資訊方法
資料來源:DLL file version
function getFileVersionStr( const sgFileName : string ) : string;
var infoSize: DWORD;
var verBuf: pointer;
var verSize: UINT;
var wnd: UINT;
var FixedFileInfo : PVSFixedFileInfo;
begin
infoSize := GetFileVersioninfoSize(PChar(sgFileName), wnd);
result := '';
if infoSize <> 0 then
begin
GetMem(verBuf, infoSize);
try
if GetFileVersionInfo(PChar(sgFileName), wnd, infoSize, verBuf) then
begin
VerQueryValue(verBuf, '\', Pointer(FixedFileInfo), verSize);
result := IntToStr(FixedFileInfo.dwFileVersionMS div $10000) + '.' +
IntToStr(FixedFileInfo.dwFileVersionMS and $0FFFF) + '.' +
IntToStr(FixedFileInfo.dwFileVersionLS div $10000) + '.' +
IntToStr(FixedFileInfo.dwFileVersionLS and $0FFFF);
end;
finally
FreeMem(verBuf);
end;
end;
end;
function getFileVersionInt( const sgFileName : string ) : Integer;
var infoSize: DWORD;
var verBuf: pointer;
var verSize: UINT;
var wnd: UINT;
var FixedFileInfo : PVSFixedFileInfo;
begin
infoSize := GetFileVersioninfoSize(PChar(sgFileName), wnd);
result := 0;
if infoSize <> 0 then
begin
GetMem(verBuf, infoSize);
try
if GetFileVersionInfo(PChar(sgFileName), wnd, infoSize, verBuf) then
begin
VerQueryValue(verBuf, '\', Pointer(FixedFileInfo), verSize);
result := StrToInt( IntToStr(FixedFileInfo.dwFileVersionMS div $10000) +
IntToStr(FixedFileInfo.dwFileVersionMS and $0FFFF) +
IntToStr(FixedFileInfo.dwFileVersionLS div $10000) +
IntToStr(FixedFileInfo.dwFileVersionLS and $0FFFF) );
end;
finally
FreeMem(verBuf);
end;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ShowMessage(getFileVersionStr('C:\ABC.EXE'));
ShowMessage(IntToStr(getFileVersionInt('D:\CDE.DLL')));
end;
2013/01/06
Delphi unicode string VS memorystream
資料來源:
1. Wrtiting string to TMemoryStream - Pointer to string
2. 现有 Delphi 项目迁移到 Tiburon 中的注意事项
擴充的TStreamEx,在D7, Delphi XE下都可正確使用,只能說歪國人真是太厲害了,學習!
1. Wrtiting string to TMemoryStream - Pointer to string
2. 现有 Delphi 项目迁移到 Tiburon 中的注意事项
擴充的TStreamEx,在D7, Delphi XE下都可正確使用,只能說歪國人真是太厲害了,學習!
procedure TStreamEx.WriteString(const data: string);
var
len: cardinal;
oString: UTF8String;
begin
oString := UTF8String(data);
len := length(oString);
self.WriteBuffer(len, 4);
if len > 0 then
self.WriteBuffer(oString[1], len);
end;
procedure TStreamEx.ReadString(const data: string);
var
len: cardinal;
iString: UTF8String;
begin
self.ReadBuffer(len, 4);
if len > 0 then
begin
SetLength(iString, len);
self.ReadBuffer(iString[1], len);
result := string(iString);
end
else result := '';
end;
2013/01/03
Open Dbexpress 安裝中文說明
中文:
========
使用:
一、移除舊版的Package(PkgDbxXXDrv{%Delphi版本號%}.bpl),並且移除舊版的搜尋路徑
二、安裝新的Package到IDE中,路徑如下:
dbxoodbc\lib\{%Delphi版本號%}\dbxoodbc*.bpl
or
dbxoodbc\lib\{%Delphi版本號%}\dbxoodbc*_emb.bpl
※第二個版本在輸出時不需要外部的「dbxoodbc.dll」
三、複製"dbxoodbc\lib\dbxoodbc_driver\(%Platform%)\release\*dbxoodbc*"目錄下所有的檔案到系統目錄
(例如:{%DELPHI}\Bin)
四、把模組加入到你的專案中,例如:
uses
..., DbxXXDrv;
而下面的方式可以在輸出的時候不需要額外的「dbxoodbc.dll」
uses
..., DbxOpenOdbcStatic;
如果你使用這套Driver時有問題,可以參照下列的方式進行檢查或故障排除
一、加入下列模組到你的專案,它可以讓你進入DbxOpenOdbc.pas進行Debug工作
uses
..., DbxOpenOdbcStatic, DbxXXDrv;
二、如果 DbxOpenOdbc.pas 無法解決你的問題,你必須再深入到
日誌模式(mode of journalizing)
三、要開啟日誌模式,你必須編輯「DbxOpenOdbc_options.inc」單元
並將 {$DEFINE _DEBUG_} 和 {$DEFINE _TRACE_CALLS_} 開啟
然後將 {.$DEFINE _RELEASE_} 關閉
最後,重新編譯你的專案或 OpenODBC 驅動
四、偵錯訊息將會在Delphi IDE裡的EventLog視窗顯示,但只能在開發環境中運行
其它的偵錯方式可使用「Debug View」,詳見:
http://technet.microsoft.com/en-us/sysinternals/bb896647
想更進一步偵錯可參考「DbxOpenOdbcTrace.pas」單元
五、在Debug視窗將顯示資料庫版本、ODBC驅動程式、OpenODBC和連線參數,
你連線的問題將具體表現在這些資訊裡面,這有助於快速找尋及解決問題
這日誌將記錄呼叫的方法...
六、中文翻譯不明白的地方,以英文版的說明為準
========
使用:
一、移除舊版的Package(PkgDbxXXDrv{%Delphi版本號%}.bpl),並且移除舊版的搜尋路徑
二、安裝新的Package到IDE中,路徑如下:
dbxoodbc\lib\{%Delphi版本號%}\dbxoodbc*.bpl
or
dbxoodbc\lib\{%Delphi版本號%}\dbxoodbc*_emb.bpl
※第二個版本在輸出時不需要外部的「dbxoodbc.dll」
三、複製"dbxoodbc\lib\dbxoodbc_driver\(%Platform%)\release\*dbxoodbc*"目錄下所有的檔案到系統目錄
(例如:{%DELPHI}\Bin)
四、把模組加入到你的專案中,例如:
uses
..., DbxXXDrv;
而下面的方式可以在輸出的時候不需要額外的「dbxoodbc.dll」
uses
..., DbxOpenOdbcStatic;
如果你使用這套Driver時有問題,可以參照下列的方式進行檢查或故障排除
一、加入下列模組到你的專案,它可以讓你進入DbxOpenOdbc.pas進行Debug工作
uses
..., DbxOpenOdbcStatic, DbxXXDrv;
二、如果 DbxOpenOdbc.pas 無法解決你的問題,你必須再深入到
日誌模式(mode of journalizing)
三、要開啟日誌模式,你必須編輯「DbxOpenOdbc_options.inc」單元
並將 {$DEFINE _DEBUG_} 和 {$DEFINE _TRACE_CALLS_} 開啟
然後將 {.$DEFINE _RELEASE_} 關閉
最後,重新編譯你的專案或 OpenODBC 驅動
四、偵錯訊息將會在Delphi IDE裡的EventLog視窗顯示,但只能在開發環境中運行
其它的偵錯方式可使用「Debug View」,詳見:
http://technet.microsoft.com/en-us/sysinternals/bb896647
想更進一步偵錯可參考「DbxOpenOdbcTrace.pas」單元
五、在Debug視窗將顯示資料庫版本、ODBC驅動程式、OpenODBC和連線參數,
你連線的問題將具體表現在這些資訊裡面,這有助於快速找尋及解決問題
這日誌將記錄呼叫的方法...
六、中文翻譯不明白的地方,以英文版的說明為準
訂閱:
意見 (Atom)