我在DLL中做了一些功能,如:出口相同的DLL功能在多個名稱
procedure DoThis(A: PChar): Boolean; stdcall;
begin
f := TFileStreamCreate(A, fmCreate);
f.read()
f.free;
end;
然後我出口它下2名:
export
DoThis,
DoThis name 'DoThat';
在大多數情況下,這種「重命名「的作品。但至少在一種情況下,重命名的函數「DoThat」不會從真實文件中讀取數據,而是從無效中讀取數據。如果我在同一個文件上調用DoThis,它的效果很好。 我刪除了所有的內存泄漏感謝FastMM4(轉換的代碼,以常規控制檯應用程序)
所以,問題是:
這是「重命名」不是一個法律做的事情嗎?
如果它是合法的,我可以使用FastMM4調試DLL而不必將其更改爲控制檯應用程序?
你所描述的事情沒有發生,除非你證明它。不要粘貼假代碼。粘貼一個真正的程序,一個完整的程序。假代碼是浪費每個人的時間。 – 2013-05-12 12:25:08
我不能在這裏粘貼超過200 kB的代碼。我不是在尋找解決問題的辦法,而只是回答這兩個問題。 – Tom 2013-05-12 13:30:17
你發佈的是代碼的縮減代碼。你只需要20-30行。做出這種削減repro的行爲會讓你相信問題在別處 – 2013-05-12 13:34:53