2013-03-19 59 views
1

我有以下两类:如何在DLL中导出事件?

public class DLLClass { 
    public delegate void dllDelegate(Object sender, EventArgs e); 
    public event dllDelegate dllEvent; 
    ..... 
} 

class AppClass { 
    DLLClass dll; 

    public AppClass() { 
     dll.dllEvent += new DLLClass.dllDelegate(dllEventHandler); 
    } 

    public void dllEventHandler(Object sender, EventArgs e){ 
    } 
} 

每一个都是相同的解决方案的一部分,但指的是不同的项目。

问题是编译器说在DLLClass中没有dllEvent成员。

编辑: 错误:

error CS1061: 'AppNamespace.DLLClass ' does not contain a definition for 'dllEvent ' and no extension method 'dllEvent ' accepting a first argument of type 'AppNamespace.DLLClass ' could be found (are you missing a using directive or an assembly reference?)

error CS0426: The type name 'dllDelegate' does not exist in the type 'AppNamespace.DLLClass.ParametersPanel'

而且当我尝试看看DLLClass的定义从AppClass代码,MSVS显示我从元数据类的定义与它没有任何代表。

+0

编译器是否找到“DLLClass”?你说它只是抱怨'dllEven'。 – 2013-03-19 13:01:37

+0

@ MD.Unicorn,是的,它发现。 – Alex 2013-03-19 13:02:27

+2

什么是确切的编译器错误? – alex 2013-03-19 13:02:28

回答

1

如果您的参考不是项目参考,而是一个文件参考,您可能需要先构建第一个项目。形成Build菜单,请选择重建所有

如果这没有帮助,您可能引用了错误的文件。删除对第一个项目的引用,并向其添加项目引用

+0

已经尝试重建所有。没有帮助。 – Alex 2013-03-19 13:05:47

+0

也许您不重新编译包含DLLClass的项目,因为在构建配置中取消选择项目。尝试用DLLClass专门重建项目。 – alex 2013-03-19 13:19:50