我有2個項目,RoofExp和testapp,RoofExp是由C寫的DLL項目,testapp是一個用於測試RoofExp.dll的win32控制檯項目。我的代碼如下:如何解決LNK2019聯動錯誤?
roofexp.h
#ifndef ROOF_EXP_PARSER_H
#define ROOF_EXP_PARSER_H
#ifdef ROOF_EXP_API
#else
#define ROOF_EXP_API __declspec(dllimport)
#endif
#ifndef MAX_PATH
#define MAX_PATH 260
#endif
#define MAX_PARAS 16
enum ParaType
{
PARA_NUMBER = 1,
PARA_STRING
};
typedef struct _VARIABLE_INFO
{
char VarName[MAX_PATH];
struct _VARIABLE_INFO *next;
}VARIABLE_INFO, *PVARIABLE_INFO;
typedef struct _FUNCTION_INFO
{
char FuncName[MAX_PATH];
int FuncParas;
enum ParaType FuncParaType;
int FuncParaList[MAX_PARAS];
struct _FUNCTION_INFO *next;
}FUNCTION_INFO, *PFUNCTION_INFO;
ROOF_EXP_API void __cdecl ParserUninitialize();
ROOF_EXP_API int __cdecl ParserInitialize(PVARIABLE_INFO pVarList, PFUNCTION_INFO pFuncList);
ROOF_EXP_API int __cdecl ParserExecute(char *filename, int *errcnt, char *errmsg, int bufflen, void *fptr);
#define ERROR_PARSER_BASE 1024
#define ERROR_PARSER_SUCCESS 0x00
#define ERROR_PARSER_BAD_PARAMETERS ERROR_PARSER_BASE-1
#define ERROR_PARSER_FILE_NOT_FOUND ERROR_PARSER_BASE-2
#define ERROR_PARSER_FAILED_INIT ERROR_PARSER_BASE-3
#endif
testapp.cpp
int _tmain(int argc, _TCHAR* argv[])
{
char szFileName[MAX_PATH];
int nRetCode = 0;
ParserExecute(szFileName, &nRetCode, szFilePath, 1024, NULL);
return 0;
}
的RoofExp項目能夠順利建設,當我建立testapp項目,我收到以下錯誤消息:
error LNK2019: unresolved external symbol "__declspec(dllimport) int __cdecl ParserExecute(char *,int *,char *,int,void *)
我搜索了很長時間,無法解決我的問題。有人能告訴我我的代碼有什麼問題,以及如何解決它?
您是否將lib文件傳遞給鏈接器? –
是的,我使用'/ LIBPATH:「lib-path」roofexp.lib'鏈接器選項將lib文件傳遞給鏈接器。 – Kecise
[error LNK2019:unresolved external symbol]可能重複](http://stackoverflow.com/questions/13318965/error-lnk2019-unresolved-external-symbol),[無法解決無法解析的外部錯誤LNK2019錯誤](http:// stackoverflow.com/q/7850896/62576)和其他幾個人,所有這些都得出了基本相同的結論。 –