我在Delphi使用下面的C++例子寫一個DLL:將C++函數轉換爲Delphi:如何處理void *參數?
USERDLL_API double process_message (const char* pmessage, const void* param)
{
if (pmessage==NULL) { return 0; }
if (param==NULL) { return 0; }
if (strcmp(pmessage,"state")==0)
{
current_state *state = (current_state*) param;
return process_state((current_state*)param);
}
}
不幸的是,我知道旁邊沒有關於C++和指針。我應該用什麼來代替char *(PChar?)和void *?
function process_message (const pmessage: PChar; const param: ???): Double; export;
begin
???
end;
exports process_message;
任何有關該功能正文的幫助都將得到高度讚賞。我意識到這不是火箭科學,但我不會學習C++只是轉換一個幾行的基礎知識,如果有人好心地爲我做的:-)
學習C++的基礎知識是你應該做的事*無論你是否需要翻譯該代碼。如果你使用Delphi,那麼你在Windows上工作,如果你在Windows上工作,那麼你應該知道如何閱讀C和C++,因爲你看到的幾乎所有的文檔都是用這些語言編寫的。如果你不這樣做,你只是將你的頭伸向沙灘。 – 2009-09-14 13:43:47
好點,Rob。只是我不是專業的軟件開發人員。我通常會做邏輯,Delphi的內置組件就是我所需要的。當我不得不處理一些事情時,這是一種罕見的情況。讚美stackoverflow :-) – Mikhail 2009-09-15 03:16:53