我有一個DLL這需要照顧的自定義繪製的一些特殊的玻璃特效。我把它在一個DLL,原因有三:1)所以可以很容易地重新使用和分配過程中的不重其主機應用程序下來,2)這樣我就可以分發到開發商沒有他們知道如何它的工作原理和3)因此它可以從C#中使用。它目前在Delphi中工作,但我知道我需要做很多更改才能支持C#。例如,主DLL函數包含1個參數(一個記錄),其中包含我知道不會在C#中工作的許多類型(如String和TColor)。項目還沒有完全完成,但正在工作。檢查德爾福DLL的安全性,在使用C#
我需要有人指出,最簡單的方法來實現這一點。代碼太大,無法在此發佈,因此here it is at Pastebin。
這就是我需要知道:
- 我應該繼續使用記錄,因爲我,或者用別的東西像盒裝記錄?
- 任何技巧在這些記錄中使用String或PChar之外的其他技巧?
- 如何將這個DLL包裝在C#中? (我知道的方式非常小C#)
- 如何定義等同記錄傳遞給DLL函數?
- 如何在C#中定義等效常量? (JDGlassCommon.pas的C#版本)
- 如何獲得畫布句柄(HDC)和父句柄(HWND)發送到DLL?
- 什麼會等同於TColor?
- 它是安全的傳遞類型,如TColor的記錄?
- 你是否預見到我的代碼中有其他問題?
文件列表:
庫:JDGlassLib.dll*
- 單位:JDGlassCommon.pas
*
套餐:JDLib.bpl
- 單位:JDGlassCommon.pas
*
- 單位:JDGlass.pas
*
計劃:JDLibTestApplicationD7。exe文件
- 形式:JDLibTestAppD7.dfm
*
單位:JDLibTestAppD7.pas
*
(
*
=代碼被包括在上述連結)(JDGlassCommon.pas在DLL和組件中共享)
應該是這個樣子:
注:我不要求重新寫,雖然你比歡迎更多。我只需要一些關於如何解決這個問題的提示。
PS:StackOverflow上的貸記「NGLN」原稿玻璃繪圖代碼回答我的前一個問題:Delphi custom drawing - glowing glass
我希望StackOverflow會強制人們輸入一個解釋評論,當downvoting ... –