Re: [問題] class宣告在source file

看板C_and_CPP作者 (我愛阿蓉)時間13年前 (2011/12/09 08:03), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串2/3 (看更多)
大家好 前一篇推文我問說 dll兩隻process 一起load起來 是不是會共用 直覺是覺得不會 但我沒任何知識關於這方面 想請問各位有沒有這方面的簡單觀念教學網頁 我測試結果 也是 不會 我測試如下 某export dll的code寫 #define TESTDLL_API __declspec(dllexport) extern TESTDLL_API void ORZ(); extern TESTDLL_API int nTestDLL; static int foo = 5566; void ORZ(){ cout<<"call ORZ "<<foo<<", "<<nTestDLL<<endl; foo++; } 想測 global變數和static變數是否共用 結果 測試程式寫如下 HMODULE hGAL; if (NULL != (hGAL =LoadLibrary(L"TestDLL.dll"))) { cout<<"load dll successful"<<endl; } typedef void(*FUNPTR)(void); FUNPTR FPTR; FPTR=(FUNPTR)GetProcAddress(hGAL, "ORZ"); int* qq = (int*)GetProcAddress(hGAL, "nTestDLL"); while(true) { Sleep(1000); (*FPTR)(); cout<<*qq; (*qq)++; } build好後 複製成兩隻exe 分別執行 兩者數值毫無關聯性 請各位告訴我為什麼會這樣.... 因為我曾經聽過有某位資深員工說過 windows dll是認名字的 如果名字一模一樣 他就不會再laod一次之類的 但我想這應該是限定同一隻process才會降吧? 觀念不清楚 請教各位 若有相關資訊 煩請給我參考一下 謝謝 ※ 引述《chiwa (我是青蛙,不是王子^_^)》之銘言: : 開發平台(Platform): (Ex: VC++, GCC, Linux, ...) : Linux (Android) : 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) : 問題(Question): : 在android中,有一個叫 BpAudioFlingerClient 的 class : 我發現它是宣告跟定義都寫在 IAudioFlingerClient.cpp : 這個檔案是libmedia.so的一部分 : 假設今天有許多process同時用到libmedia.so : 對於這些process來說,他們所擁有的 class BpAudioFlingerClient 會是同一個嗎? : 謝謝大家的回答 : 餵入的資料(Input): : 預期的正確結果(Expected Output): : 錯誤結果(Wrong Output): : 程式碼(Code):(請善用置底文網頁, 記得排版) : http://ppt.cc/_!VT : 補充說明(Supplement): : 發現問的問題自己都看不懂 0.o : 目前的想法是 : type應該是在compile的時候就決定了,所以跟process應該無關 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.147.15.66

12/09 19:16, , 1F
對 每個process不同
12/09 19:16, 1F
文章代碼(AID): #1EuS34YP (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 2 之 3 篇):
文章代碼(AID): #1EuS34YP (C_and_CPP)