在C++中,當使用dllimport
指令導入外部DLL中的函數或變量時,可能會遇到名稱重整(Name Mangling)的問題。名稱重整是編譯器在編譯時對函數或變量名進行加密處理,以確保函數或變量名的唯一性。
為了解決名稱重整問題,可以在使用dllimport
指令時使用extern "C"
關鍵字,告訴編譯器不要進行名稱重整。例如:
extern "C" {
__declspec(dllimport) void MyFunction();
}
使用extern "C"
關鍵字可以告訴編譯器使用C語言的命名規則,避免名稱重整。這樣就可以正確導入外部DLL中的函數或變量,而不會出現名稱重整導致找不到對應函數或變量的問題。