2013-01-24 66 views
0

我正在使用SAGEM MORPHO DLL在VC++上編寫應用程序。
我指的DLL是MORPHO_SDK.dll
曝光功能是我在VC++中調用C++ dll

C_MORPHO_User::Enroll (US i_us_Timeout,UC i_uc_FingerNumber, T_MORPHO_TYPE_TEMPLATE i_x_TemplateType, 
    UL i_ul_CallbackCmd, 
    T_MORPHO_CALLBACK_FUNCTION i_pf_Callback, 
    PVOID i_pv_CallbackArgument, 
    I i_i_CoderChoice, 
    UL i_ul_DetectModeChoice 
) 

我打電話的方式是

int res; 
    C_MORPHO_User u,nw,idf; 

extern "C 
" __declspec(dllimport) int Enroll (US i_us_Timeout,UC i_uc_FingerNumber, 
    T_MORPHO_TYPE_TEMPLATE i_x_TemplateType, 
    UL i_ul_CallbackCmd, 
    T_MORPHO_CALLBACK_FUNCTION i_pf_Callback, 
    PVOID i_pv_CallbackArgument, 
    I i_i_CoderChoice, 
    UL i_ul_DetectModeChoice 
) ; 
main() 
{ 
int x=u.Enroll(0x15,1,MORPHO_PK_ISO_FMR ,0,NULL,NULL,MORPHO_MSO_V9_CODER ,MORPHO_ENROLL_DETECT_MODE); 
    printf("%d\n",x); 
} 

在編譯時我收到這些錯誤

1.syntax錯誤:缺少';'標識符'u'前
2.C_MORPHO_User:缺少存儲類或類型說明符。

這是調用Dll的正確方法。請幫助解決問題。

+1

第一個問題的直接答案是* no *,它不是*'調用DLL'的正確方法。對於初學者來說,你需要從你的.h文件中定義類的定義。 – WhozCraig

+1

幾件事情:首先,您需要在定義了'C_MORPHO_User'的頭文件中包含該頭文件。其次,你不應該聲明一個獨立函數'Enroll',因爲它是'C_MORPHO_User'的成員函數,並且將被聲明爲'C_MORPHO_User'類定義的一部分。 –

+0

當我包含各自的頭文件頭文件,它給出的錯誤,如C_MORPHO_TemplateList':基類未定義,C_MORPHO_FieldList':基類未定義,語法錯誤:標識符'C_MORPHO_TemplateList'等... – WallPoster

回答

0

我包含了所有必需的頭文件,它已經解決了這個問題。