即時得到一些警告說我有不一致的dll的聯繫,儘管我我的dll像這樣的標題進行分類:不一致的DLL聯動
#ifdef MY_ENGINE_EXPORTS
#define ENGINE __declspec(dllexport)
#else
#define ENGINE __declspec(dllimport)
#endif
它當我添加MY_ENGINE_EXPORTS到預處理工作正常,擺脫錯誤的的定義,但我的印象是這應該在構建/導出時自動完成。我說錯了嗎?我包含一個下劃線,因爲該項目是2個字,例如「我的引擎」。我試過它既是MY_ENGINE_EXPORTS也是MYENGINE_EXPORTS,但都不起作用。
正如我所說,我可以將它添加到預處理器的定義,但它是在擾亂我爲什麼它不像它應該那樣行事。
如果您沒有將它添加到預處理器定義中,那麼您將明顯地冒一些翻譯單元意外定義的* not *有MY_ENGINE_EXPORTS#的風險。你也沒有解釋你是如何確定它是#defined。當然這解釋了警告。 – 2013-03-13 00:05:19
我意識到這個問題現在有多愚蠢,但是我看過的每個主題都有以{projectname} _EXPORTS相同格式編寫的#ifdef。我認爲這是一個預定義的宏,該環境爲構建的dll項目創建。這很煩人,但我無法找到我之前看到的鏈接,甚至說它是自動的。 – EvilWeebl 2013-03-13 00:13:49