对于插件我需要创建一个导出C ++类的DLL。 (对于西门子HMI操作)我的问题是,我想在Delphi中编写这个插件。我需要使用很多自己的库,这些库都是Delphi。
所以问题是:可以用Delphi创建这样的DLL吗?
当我在PE Explorer中打开这样的插件DLL(用Visual C ++编写)时,它的导出如下所示:
?createDialogBar@SlGfwPluginByMakroBase@@UAEPAVSlGfwDialogBar@@ABVQString@@PAVQWidget@@0@Z
public: virtual class SlGfwDialogBar * __thiscall SlGfwPluginByMakroBase::createDialogBar(class QString const &,class QWidget *,class QString const &)
答案 0 :(得分:5)
可以用Delphi创建这样的DLL吗?
不,不能。您需要使用主机进程期望的特定C ++实现来创建DLL。
也许你能做的最好的事情就是在那个特定的C ++实现中创建插件DLL,然后通过调用你的Delphi代码来实现类的方法。但是必须使用C ++实现主机进程导入的C ++类。换句话说,您使用C ++在要求特定C ++实现的插件接口和用Delphi编写的代码之间建立桥梁。