为什么一个类无法识别另一个类的公共成员变量

时间:2012-09-13 18:33:30

标签: vb.net dll dllimport

我有两个课程如下

    Public Class A_one     'This project does not have a dll generated even after a build. Any reason why ?
    Public Structure struct
        Dim xyz as String
        Dim p as String
    End Structure
    Public Sub xyz(...)
        ClassB_one_Obj = New ClassB_one_Obj(SampleStruct) 

        ClassB_one_Obj.send_struct(sampleStruct)   
    End Sub

    Public Class B_one       'In a different project 
    Public Sub send_struct(ByVal sampleStruct As A_one.struct)  'Throwing error here **"Type A_one.struct not defined"**

任何人都可以解释为什么我收到错误。是因为我没有在B_one类中添加类A_one的dll引用吗? 我试图添加A_one的引用dll,但无法在obj / bin文件夹中找到它。 任何人都可以指点我的工作吗?

EDIT / UPDATE:认为作为主可执行文件的类A_one创建了B_one类的对象,这就是我们无法在B_one中创建类A_one的对象的原因,因为它有像死锁一样的情况。

我们不能从另一个类创建主类(启动类)的对象吗?

1 个答案:

答案 0 :(得分:1)

是的,错误是因为项目B没有引用项目A,因此它对该类型一无所知。

从使用Visual Studio,转到项目B,引用,添加的属性。如果项目A与B在同一解决方案中,请将其添加为项目/解决方案参考,否则您可以浏览DLL。如果使用DLL方法,则必须确保项目A的项目类型设置为类库并且已成功构建。如果它未设置为类库项目,它很可能已构建为EXE文件(如果需要项目A作为独立的可执行文件,也可以添加对EXE文件的引用)。