是这样的,想做一个类似Eclipse这样的IDE,能开发自定义插件,插件能改变主窗口中的UI我想能不能EXE中导出一些操作UI的函数(用临界区同步线程操作)供DLL(插件)使用,然后EXE显式加载DLL,并调用约定的函数进行一系列操作大家给点意见这样是否可行

解决方案 »

  1.   

    约定好接口和方法应该是可以的,就是给dll约定好一个导出的方法,让主程序调用此方法来创建控件,生成插件的思想可以参考下面的
    http://blog.csdn.net/wyyw21/article/details/1151839
      

  2.   


    插件我做过类似C#下的提供者模式这样的,所有DLL从一个抽象类派生出来并实现各纯虚函数,然后导出约定的接口,EXE再显示加载。但我现在想做的是类似集成开发环境这样的(最 典型的ECLIPSE),都不知道插件会生成什么控件,也不知道控件是行为会是怎样的,EXE就提供一个框架窗口以及进行一些对公共数据是初始化工作,然后再由插件生成一些子窗口这样。我昨晚试了一下,DLL确实可以调用EXE导出的函数,但EXE却不会自动启动进行一些初始化工作。
      

  3.   


    插件我做过类似C#下的提供者模式这样的,所有DLL从一个抽象类派生出来并实现各纯虚函数,然后导出约定的接口,EXE再显示加载。但我现在想做的是类似集成开发环境这样的(最 典型的ECLIPSE),都不知道插件会生成什么控件,也不知道控件是行为会是怎样的,EXE就提供一个框架窗口以及进行一些对公共数据是初始化工作,然后再由插件生成一些子窗口这样。我昨晚试了一下,DLL确实可以调用EXE导出的函数,但EXE却不会自动启动进行一些初始化工作。
    我觉得其实就看你想让插件有多少操作exe的权限了,Exe的一些信息可以在创建插件的时候传递给插件,插件用不用是它的问题
      

  4.   


    插件我做过类似C#下的提供者模式这样的,所有DLL从一个抽象类派生出来并实现各纯虚函数,然后导出约定的接口,EXE再显示加载。但我现在想做的是类似集成开发环境这样的(最 典型的ECLIPSE),都不知道插件会生成什么控件,也不知道控件是行为会是怎样的,EXE就提供一个框架窗口以及进行一些对公共数据是初始化工作,然后再由插件生成一些子窗口这样。我昨晚试了一下,DLL确实可以调用EXE导出的函数,但EXE却不会自动启动进行一些初始化工作。
    我觉得其实就看你想让插件有多少操作exe的权限了,Exe的一些信息可以在创建插件的时候传递给插件,插件用不用是它的问题晕,这么简单的问题我居然想这么复杂了,应该一切回归本源啊。。(最近在看COM设计模式,搞得想问题都不正常了),谢谢提醒。只要定义一个结构把可能的信息都填充进去,初始化时传这个结构给DLL让DLL自己决定。非常感谢您。。我都对自己无语了。。