我的應用程序與德爾福2010年編譯。該應用程序加載一個Delphi 7編譯的DLL加載一個Delphi 2010編譯的DLL。德爾福2010年應用程序加載一個德爾福7 DLL
D2010 app LOADS D7 DLL LOADS D2010 DLL
的D7 DLL的導出函數使用Widestrings
和德爾福2010 DLL使用strings
的導出函數。我們都知道,Delphi 2010中的strings
是Unicode(2字節),而在Delphi 7中它們是Ansi(1字節)。
我所有的測試都表明,儘管它不應該這樣,但它仍在工作。我想知道:
爲什麼它工作?
什麼可以出錯?
我應該使用哪種內存管理器(德爾福2010或Delphi 7的內存管理器DLL)
這是一個錯誤,這是工作? ;-) – Pol
@Pol no,它不是。我只是想明白它爲什麼起作用。 –
對您的問題沒有影響,但您可以在兩側使用WideString。 – Pol