我有一个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 ... –