Fw: [問題] Windows Form 的LNK2005

看板C_Sharp (C#)作者 (哇哈哈)時間13年前 (2012/04/20 17:08), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
※ [本文轉錄自 C_and_CPP 看板 #1FaHuNPW ] 作者: snk521 (哇哈哈) 看板: C_and_CPP 標題: [問題] Windows Form 的LNK2005 時間: Fri Apr 20 16:28:05 2012 小弟是Windows Form的新手,在這邊想請教一個關於LNK2005的問題。 我是用VS2008的CLR windows Form來寫程式的,我的專案名稱叫Basis。 而Form的名稱就很簡單叫Form1,而專案中還有一個cpp file A.cpp和header file A.h。 今天我在A.h利用typedefine宣告了一個函數指標 ============================= A.h ============================= typedef INT ( WINAPI * P_fnSFCSDB_Initialize )(void); P_fnSFCSDB_Initialize fnSFCSDB_Initialize; ================================================================ 並在A.cpp用了,這樣使用是沒問題的。 問題來了!我的Form1也要使用同樣的函數,所以我在Form1.h中include了A.h, 結果compile後,造成 A.obj : error LNK2005: "int (__stdcall* fnSFCSDB_Initialize)(void)" (?fnSFCSDB_Initialize@@3P6GHXZA) 已在 Basis.obj 中定義過了 其中fnSFCSDB_Initialize就是我宣告的函式,我在想這是不是因為我用 type define 重複定義造成的。還是因為Windows Form的程式主體在Form1.h造成的? 想請問我要怎麼改才可以修掉這個LNK error? ========================================================= 我有想過用extern 全域變數的方式加在函式前,可是又會變成 error LNK2020: 無法解析的語彙基元 (0A000014) "int (__stdcall* fnSFCSDB_SendMsg)(int,char *,char *)" (?fnSFCSDB_SendMsg@@3P6GHHPAD0@ZA) 想請各位大大給我個意見吧 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.120.184.171 ※ 編輯: snk521 來自: 59.120.184.171 (04/20 16:35) ※ 編輯: snk521 來自: 59.120.184.171 (04/20 16:52) ※ 編輯: snk521 來自: 59.120.184.171 (04/20 16:52) ※ 編輯: snk521 來自: 59.120.184.171 (04/20 16:57) ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 轉錄者: snk521 (59.120.184.171), 時間: 04/20/2012 17:08:48
文章代碼(AID): #1FaIUXXj (C_Sharp)
文章代碼(AID): #1FaIUXXj (C_Sharp)