我是一個新手C & C++,我迫切需要幫助。我想重新使用已由供應商編碼的功能。爲此,供應商給我提供了.H
文件& .lib
文件。供應商代碼是使用Visual C語言開發的,我嘗試在Visual C++ 6中訪問這些.lib文件。編譯成功。鏈接時出錯。採取的步驟:鏈接問題C/C++
- 我已鏈接項目設置下的所有
.lib
文件。
我仍然得到以下錯誤消息:
pricing_w32.obj:錯誤LNK2001:解析外部符號
_open_item_info_files
調試/ pricing_w32.exe:致命錯誤LNK1120:1周無法解析的外部 錯誤執行鏈接。可執行程序。
下面是代碼,我曾寫入:
#include<stdio.h>
#include<string.h>
#include<fstream>
#include<conio.h>
#include<stdlib.h>
#include<iostream>
#include <windows.h>
extern "C"
{
#include<cma_telx.h>
}
using namespace std;
int process_file(char **in_file);
extern "C"
{
void lkup_item_info(void *item);
int open_item_info_files(int *err);
int close_item_info_files(int *err);
int open_item_promo_files(int *err);
int close_item_promo_files(int *err);
void lkup_rtn_csp_db(void *itemCspWDB);
void lkup_rtn_promos_csp_db(void *itemPrmCspWDB);
int do_empdisc_lookup(struct EMPDISC_RECORD *edisc, int *err);
int do_empauth_lookup(struct EMPLOYEE_AUTH_REC *eauth, int *err);
void return_all_promos(struct ALL_PRMINFO_BASE &all_promos);
}
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
char UPC[7];
void *SKU;
cout<<"Normal end"<<endl;
int return_code, *err;
return_code = open_item_info_files(err);
cout<<return_code<<"open item return code"<<endl;
cout<<return_code<<"Close item return code"<<endl;
return 0;
}
cma_telx.h包含以下函數原型:
int open_item_info_files(int *err);
下面是命令的片段:DUMPBIN /符號cma_telx。 lib
076 00000000 SECT1D notype()External | ?open_item_info_files @@ YAHPAH @ Z(int __cdecl open_item_info_files(int *)) 標記索引00000083大小00000121行00007129下一個函數0000008E 078 00000000 SECT1E notype靜態| .data 段長度9,#relocs 0,#linenums 0,校驗和145249B4,選擇2(挑選任何) 07A 00000000 SECT1E notype外部| ?_ C @ _08OOCA @ PMSDPTCL?$ AA @(string') 07B 00000000 SECT1F notype Static | .data Section length 7, #relocs 0, #linenums 0, checksum 7F8A6B53, selection 2 (pick any) 07D 00000000 SECT1F notype External | [email protected][email protected][email protected] (
string') 07E 00000000 SECT20 notype靜態| .data 段長度7,#relocs 0,#linenums 0,校驗和F397CDFF,選擇2(挑選任何) 080 00000000 SECT20 notype外部| _ _ @ @ 06OHCH @ KPXREF $ AA @(`string') 081 00000000 UNDEF notype()External | _ imp _FileManager 082 00000000 UNDEF notype()External | __chkstk
錯誤顯示你編譯時不喜歡那些庫文件 – gongzhitaao
@gongzhitaao,* link *,你的意思是? – Raptor
你確定庫中有一個叫做'open_item_info_files'的函數嗎?你的拼寫/大小寫/標點完全正確嗎?你可以看看這個問題http://stackoverflow.com/questions/305287/how-to-see-the-contents-of-windows-library-lib它可以幫助你「窺視」圖書館。要麼你沒有連接正確,要麼你要求的東西不在那裏。這將幫助您縮小搜索範圍。 – Floris