返回信息流有个程序界面使用C#开发的,现在为了以后的扩展性想用C++开发DLL作为插件。现在没有什么思路,我只知道C#掉C++的DLL是可以的。可是我的界面确不知道插件有哪些导出函数,以及接口参数等。不知道大家有没有什么好的思路?
谢谢!
这是一条镜像帖。来源:北邮人论坛 / dot-net / #2001同步于 2010/6/21
该镜像源已超过 30 天没有更新,可能在源站已被删除。
dotNET机器人发帖
【求助】C#开发的界面可以调用C++的扩展DLL插件吗?
imccoder
2010/6/21镜像同步14 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
看看互操作相关的东东
你可以写一个C#的接口dll内部负责调用C++的dll
C#的界面只面向C#的dll编程(方便使用智能提示,也增强一些灵活性)
C++dll的public接口函数在C#dll内部写好,这个编程调用方法时可是没有智能提示的哦
,只能一个字母不错的一点点写出来...
个人意见仅供参考~~
【 在 imccoder (imccoder) 的大作中提到: 】
: 有个程序界面使用C#开发的,现在为了以后的扩展性想用C++开发DLL作为插件。现在没有什么思路,我只知道C#掉C++的DLL是可以的。可是我的界面确不知道插件有哪些导出函数,以及接口参数等。不知道大家有没有什么好的思路?
: 谢谢!
调用是肯定可以的,但是肯定得知道C++的导出函数以及接口参数,不然在C#里怎么传参
【 在 imccoder 的大作中提到: 】
: 有个程序界面使用C#开发的,现在为了以后的扩展性想用C++开发DLL作为插件。现在没有什么思路,我只知道C#掉C++的DLL是可以的。可是我的界面确不知道插件有哪些导出函数,以及接口参数等。不知道大家有没有什么好的思路?
: 谢谢!
长期征解中。欢迎大牛补充
8.2. 现有一个主程序用C#语言写成。现在要允许第三方开发人员用C语言编写扩展的模块,如何设计主程序,以及如何规定扩展模块应满足的条件,才能使得如果要求第三方的类能够与主程序的二进制代码分开发布,把dll或so丢在某个文件夹内即可被动态装载使用?
附全文:
http://cloverprince.javaeye.com/blog/481307
======== 第一组 ========
1. 现有一个主程序用C语言写成。现在要允许第三方开发人员编写扩展的模块,约定第三方开发的模块必须提供一系列已知名称的函数(如 foo(),bar(),baz())。如果要求第三方的模块必须与主程序的二进制代码分开发布,把dll或so丢在某个文件夹内即可被动态装载并使用,应如何实现?
2. 现有一个主程序用C++语言写成。现在要允许第三方开发人员编写扩展的类,约定第三方开发的类必须包含一个继承自某个已知类(如class FooPlugin)的子类,名称不限。如果要求第三方的类必须与主程序的二进制代码分开发布,把dll或so丢在某个文件夹内即可被动态装载使用,应如何实现?
3. 现有一个主程序用Java语言写成。现在要允许第三方开发人员编写扩展的类,约定第三方开发的类必须包含一个实现了某个已知接口(如interface IFooPlugin)的类,名称不限。如果要求第三方的类必须与主程序的bytecode分开发布,把.class放在classpath相应位置,或把jar丢在某个文件夹内即可被动态装载使用,应如何实现?
4. 现有一个主程序用C#语言写成。现在要允许第三方开发人员编写扩展的类,约定第三方开发的类必须包含一个实现了某个已知接口(如interface IFooPlugin)的类,名称不限。如果要求第三方的类必须与主程序的二进制代码分开发布,把dll丢在某个文件夹内即可被动态装载使用,应如何实现?
5. 现有一个主程序用Python语言写成。现在要允许第三方开发人员编写扩展的类,约定第三方开发的类必须包含一个继承自某个已知类(如class FooPlugin)的子类,名称不限。如果要求第三方的类必须与主程序的py脚本或pyc字节码分开发布,把py或pyc丢在某个文件夹内即可被动态装载使用,应如何实现?
6. 现有一个主程序用C语言写成。现在要允许第三方开发人员编写扩展的类(试试GLib,你可以用C语言写面向对象的程序),约定第三方开发的类必须包含一个实现了某个已知接口(如interface IFooPlugin)的类,名称不限。如果要求第三方的类必须与主程序的二进制代码分开发布,把dll或so丢在某个文件夹内即可被动态装载使用,应如何实现?
======== 第二组 ========
6.1. 现有一个主程序用C语言写成。现在要允许第三方开发人员用C++语言编写扩展的类,如何设计主程序,以及如何规定扩展类(及其所在模块)应满足的条件,才能使得如果要求第三方的类能够与主程序的二进制代码分开发布,把dll或so丢在某个文件夹内即可被动态装载使用?
6.2. 现有一个主程序用C++语言写成。现在要允许第三方开发人员用C语言编写扩展的模块,如何设计主程序,以及如何规定扩展模块应满足的条件,才能使得如果要求第三方的类能够与主程序的二进制代码分开发布,把dll或so丢在某个文件夹内即可被动态装载使用?
7.1. 现有一个主程序用C语言写成。现在要允许第三方开发人员用Java语言编写扩展的类,如何设计主程序,以及如何规定扩展类(及其所在模块)应满足的条件,才能使得如果要求第三方的类能够与主程序的二进制代码分开发布,把jar丢在某个文件夹内即可被动态装载使用?
7.2. 现有一个主程序用Java语言写成。现在要允许第三方开发人员用C语言编写扩展的模块,如何设计主程序,以及如何规定扩展模块应满足的条件,才能使得如果要求第三方的类能够与主程序的二进制代码分开发布,把dll或so丢在某个文件夹内即可被动态装载使用?
8.1. 现有一个主程序用C语言写成。现在要允许第三方开发人员用C#语言编写扩展的类,如何设计主程序,以及如何规定扩展类(及其所在模块)应满足的条件,才能使得如果要求第三方的类能够与主程序的二进制代码分开发布,把dll丢在某个文件夹内即可被动态装载使用?
8.2. 现有一个主程序用C#语言写成。现在要允许第三方开发人员用C语言编写扩展的模块,如何设计主程序,以及如何规定扩展模块应满足的条件,才能使得如果要求第三方的类能够与主程序的二进制代码分开发布,把dll或so丢在某个文件夹内即可被动态装载使用?
9.1. 现有一个主程序用C语言写成。现在要允许第三方开发人员用Python语言编写扩展的类,如何设计主程序,以及如何规定扩展类(及其所在模块)应满足的条件,才能使得如果要求第三方的类能够与主程序的二进制代码分开发布,把py或pyc丢在某个文件夹内即可被动态装载使用?
9.2. 现有一个主程序用Python语言写成。现在要允许第三方开发人员用C语言编写扩展的模块,如何设计主程序,以及如何规定扩展模块应满足的条件,才能使得如果要求第三方的类能够与主程序的二进制代码分开发布,把dll或so丢在某个文件夹内即可被动态装载使用?
10.1. 现有一个主程序用C++语言写成。现在要允许第三方开发人员用Python语言编写扩展的类,如何设计主程序,以及如何规定扩展类(及其所在模块)应满足的条件,才能使得如果要求第三方的类能够与主程序的二进制代码分开发布,把py或pyc丢在某个文件夹内即可被动态装载使用?
10.2. 现有一个主程序用Python语言写成。现在要允许第三方开发人员用C++语言编写扩展的类,如何设计主程序,以及如何规定扩展类(及其所在模块)应满足的条件,才能使得如果要求第三方的类能够与主程序的二进制代码分开发布,把dll或so丢在某个文件夹内即可被动态装载使用?
11.1. 主程序用Java或C#,模块用C++。
11.2. 主程序用C++,模块用Java或C#。
12.1. 主程序用Java,模块用C#。
12.2. 主程序用C#,模块用Java。
13.1. 主程序用Java或C#,模块用Python。
13.2. 主程序用Python,模块用Java或C#。
14.1. 主程序是用C写的面向对象程序,模块用C++,Java,C#或Python。
14.2. 主程序是C++,Java,C#或Python,模块用C,面向对象。
======== 第三组 ========
15. 现有一个主程序用$LANGUAGE1语言写成,运行于$PLATFORM平台。现在要允许第三方开发人员用$LANGUAGE2语言编写独立的程序,独立于主程序发布,但与主程序在同一主机上运行。如何设计主、副程序,才能做到:
15.1. 只要一个程序先运行,另一个程序即可在运行时感知对方的存在?
15.2. 互相发送字节流?
15.3. 调用对方程序中的函数?
15.4. 创建对方程序中已知接口的类的实例,并调用其方法,在适当时机销毁该类?
其中LANGUAGE1,LANGUAGE2,PLATFORM=
C,C,Windows
C,C,Unix
C++,C++,Windows
C++,C++,Unix
C,C++,Windows
C,C++,Unix
C,Java,??
C++,Java,??
C,C#,Windows/Unix+Mono
C++,C#,Windows/Unix+Mono
C,Python,??
C++,Python,??
Java,C#,??
Other,Other,??
【 在 snoopyboy 的大作中提到: 】
: 看看互操作相关的东东
: 你可以写一个C#的接口dll内部负责调用C++的dll
: C#的界面只面向C#的dll编程(方便使用智能提示,也增强一些灵活性)
: ...................
谢谢!
【 在 wks 的大作中提到: 】
: 长期征解中。欢迎大牛补充
: 8.2. 现有一个主程序用C#语言写成。现在要允许第三方开发人员用C语言编写扩展的模块,如何设计主程序,以及如何规定扩展模块应满足的条件,才能使得如果要求第三方的类能够与主程序的二进制代码分开发布,把dll或so丢在某个文件夹内即可被动态装载使用?
: 附全文:
: ...................
你就是大牛~膜拜!![ema23][ema23][ema23]
【 在 wks 的大作中提到: 】
: 长期征解中。欢迎大牛补充
: 8.2. 现有一个主程序用C#语言写成。现在要允许第三方开发人员用C语言编写扩展的模块,如何设计主程序,以及如何规定扩展模块应满足的条件,才能使得如果要求第三方的类能够与主程序的二进制代码分开发布,把dll或so丢在某个文件夹内即可被动态装载使用?
: 附全文:
: ...................
唉~我还以为你有答案呢
我有答案就不用征解了。
【 在 imccoder 的大作中提到: 】
: : 长期征解中。欢迎大牛补充
: : 8.2. 现有一个主程序用C#语言写成。现在要允许第三方开发人员用C语言编写扩展的模块,如何设计主程序,以及如何规定扩展模块应满足的条件,才能使得如果要求第三方的类能够与主程序的二进制代码分开发布,把dll或so丢在某个文件夹内即可被动态装载使用?
: : 附全文:
: ...................