關於錯誤Define * to be your compiler's keyword for "standard call" |
答題得分者是:syntax
|
stwave
一般會員 發表:9 回覆:9 積分:3 註冊:2005-03-29 發送簡訊給我 |
請問
小弟現在想要使佣BCB取一CCD(Prosilica EC1350)的影像. 但是原廠只有提供VC的範例.. 才建新專案,宣告#include "PdApi.h"而已就出現下面錯誤.. [C Fatal Error] PdApi.h(39): F1003 Error directive: Define PDAPI to be your compiler's keyword for "standard call" 不知道是什麼問題? 照字面是定義為關鍵字..但是拜了G大神..找不到@@ 在"PdApi.h"中開頭如下! [code cpp] #ifndef PDAPI_H_INCLUDE #define PDAPI_H_INCLUDE #ifdef __cplusplus extern "C" { #endif //===== INCLUDE FILES ========================================================= //===== #DEFINES ============================================================== #ifdef _MSC_VER #define PDAPI __stdcall #else #error Define PDAPI to be your compiler's keyword for "standard call" #endif #define PDINFINITE 0xFFFFFFFF //===== TYPE DEFINITIONS ====================================================== [/code] |
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
#ifdef _MSC_VER
#define PDAPI __stdcall <--- 這不就告訴你答案了嗎? 如果是 MSC VER,應該是如果是微軟的編譯器,就將 PDAPI 定義為 stdcall 白話文: 該作者將呼叫慣例 stdcall, pascal call, ...不懂這是什麼的,請自行查詢本站內容,使用定義來取代,以便能正確運作 而在微軟的平台上,若是使用其 Windows API ,則都是 stdcall,沒有別種選擇,因為編譯好的DLL就是使用stdcall 所以,這裡可以看出,你所使用的 Lib 也是使用 stdcall,只是,不同編譯器,對 stdcall 的關鍵字,也有所差異 所以你應該要做的是「查出 BCB 上使用 stdcall 時,所使用的關鍵字」,這給你自己去查 然後將「#error Define PDAPI to be your compiler's keyword for "standard call"」 這行刪除換成 「#define PDAPI xxxx」 其中 xxxx 就是你查到的東西 如果BCB 的語法一樣,那就簡單的下個 「#define _MSC_VER」,即可 不知這樣你清楚了嗎? ===================引 用 stwave 文 章=================== 請問 小弟現在想要使佣BCB取一CCD(Prosilica EC1350)的影像. 但是原廠只有提供VC的範例.. 才建新專案,宣告#include "PdApi.h"而已就出現下面錯誤.. [C Fatal Error] PdApi.h(39): F1003 Error directive: Define PDAPI to be your compiler's keyword for "standard call" 不知道是什麼問題? 照字面是定義為關鍵字..但是拜了G大神..找不到@@ 在"PdApi.h"中開頭如下! [code cpp] #ifndef PDAPI_H_INCLUDE #define PDAPI_H_INCLUDE #ifdef __cplusplus extern "C" { #endif //===== INCLUDE FILES ========================================================= //===== #DEFINES ============================================================== #ifdef _MSC_VER #define PDAPI__stdcall #else #error Define PDAPI to be your compiler's keyword for "standard call" #endif #define PDINFINITE 0xFFFFFFFF //===== TYPE DEFINITIONS ====================================================== [/code] |
stwave
一般會員 發表:9 回覆:9 積分:3 註冊:2005-03-29 發送簡訊給我 |
|
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
是的,不過如果是 STD Call 的話 BCB 的語法是使用 _stdcall 或 __stdcall 都可以
http://docwiki.embarcadero.com/RADStudio/en/C++Builder_Keyword_Extensions Fast Call 與 STD Call 是不同的東西 ===================引 用 stwave 文 章=================== 就是加入 #define PDAPI__fastcall 或是在裡面新增 #define _MSC_VER 兩種方式都可以編譯過。晚點是一下呼叫裡面的涵式.. 那這個問題只是要針對不同的編譯器,而定義相 對的關鍵字這樣嗎? |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |