我很好奇這樣的:stdcall需要導入函數嗎?
當我從出口使用STDCALL調用約定一個動態鏈接庫導入功能,是強制要求在德爾福之前外部添加STDCALL從7版本開始?
即
LIBNAME int __stdcall Foo(void);
爲
function Foo: Integer; stdcall; external 'libname.dll';
或者我可以在默認情況下逃脫只是
function Foo: Integer; external 'libname.dll';
IIRC它會使用STDCALL,但我不是100%當然,你的意見是必需的。
編輯:
問題是關係到32位的庫,阿爾諾Bouchez取得了一個很好的點,對於64位,調用約定是不是因爲只有一個考慮。
可以「矇混過關」漏掉了該函數的調用約定,因爲當有一個簡單的返回類型,沒有參數,STDCALL並註冊的行爲相同。 – 2012-03-21 13:05:26
@RobKennedy該死的例子!你是對的,實際上除了我導入的其中一個功能都有一個或多個參數外,感謝你提供的單挑Rob! (: – ComputerSaysNo 2012-03-21 13:14:58