在C#中使用vb.net dll。如何从vb.net dll访问C#格式的对象?

在C#中使用vb.net dll。如何从vb.net dll访问C#格式的对象?,c#,vb.net,dll,C#,Vb.net,Dll,我无法将vb.net代码完全转换为c#代码,因此我决定创建一个vb.net dll,然后将其添加到c#表单中 但是我对动态链接库一无所知,我不知道如何访问C形式的对象。我向dll中的引用添加了C#应用程序,就像我对dll所做的一样。但我仍然无法访问C#应用程序中的计时器和2个标签 这是我的vb.net dll 公共类1 公共子旁路(block1作为字符串,block2作为字符串,ok1作为字符串,ok2作为字符串) 尝试 Dim folderPath为String=Environment.Get

我无法将vb.net代码完全转换为c#代码,因此我决定创建一个vb.net dll,然后将其添加到c#表单中

但是我对动态链接库一无所知,我不知道如何访问C形式的对象。我向dll中的引用添加了C#应用程序,就像我对dll所做的一样。但我仍然无法访问C#应用程序中的计时器和2个标签

这是我的vb.net dll

公共类1
公共子旁路(block1作为字符串,block2作为字符串,ok1作为字符串,ok2作为字符串)
尝试
Dim folderPath为String=Environment.GetFolderPath(SpecialFolder.Windows)
FileClose(新整数(){1})
FileClose(新整数(){2})
如果存在My.Computer.FileSystem.files((folderPath&“\xspirit.sys”)),则
FileSystem.FileOpen(1,(folderPath&“\xspirit.sys”),OpenMode.Append,OpenAccess.ReadWrite,OpenShare.lockreadwite,-1)
其他的
File.writealBytes((folderPath&“\xspirit.sys”),新字节(){0})
FileSystem.FileOpen(1,(folderPath&“\xspirit.sys”),OpenMode.Append,OpenAccess.ReadWrite,OpenShare.lockreadwite,-1)
block1=“Erişim Engellendi”
MsgBox(“Erişim Engellendi xspirit”)
如果结束
如果存在My.Computer.FileSystem.files((folderPath&“\xhunter1.sys”)),则
FileSystem.FileOpen(2,(folderPath&“\xhunter1.sys”),OpenMode.Append,OpenAccess.ReadWrite,OpenShare.lockreadwite,-1)
其他的
File.writealBytes((folderPath&“\xhunter1.sys”),新字节(){0})
FileSystem.FileOpen(2,(folderPath&“\xhunter1.sys”),OpenMode.Append,OpenAccess.ReadWrite,OpenShare.lockreadwite,-1)
block2=“Erişim Engellendi”
MsgBox(“Erişim Engellendi xhunter1”)
如果结束
捕获异常1作为异常
ProjectData.SetProjectError(例外1)
Dim ex作为例外=例外1
ProjectData.SetProjectError(ex)
Dim exception As exception=ex
ProjectData.ClearProjectError()
ProjectData.ClearProjectError()
结束尝试
Dim p As进程()
p=Process.getProcessByName(“Wolfteam.bin”)'设置Wolfteam进程
如果p.Count=1,则“如果检测到wolfteam进程
ok1=“XignCode Clear Başarılı”
ok2=“XignCode Clear Başarılı”
MsgBox(“XignCode Clear Başarılıxspirit”)
MsgBox(“XignCode Clear Başarılıxhunter1”)
如果结束
端接头
末级
我试图转换C#,但我无法完全转换,因此我尝试使用此代码从我的dll访问对象,但我无法转换(是的,我将其添加到引用中)

C#app.Form1(在这里之前没有问题,但我无法继续此代码。它不接受其余部分)

其实我想写这个:

C#app.Form1.Timer1.Enabled=False或C#app.Form1.label1.Text=“测试”
我也试过:

Dim test1为String=“test”
'然后从C#访问它们,然后:
vbnetdll.Class1 tt=新的vbnetdll.Class1();
label1.Text=f.vbmethod.test1;

但我不能这样做。因为它不接受。有什么问题吗?

默认情况下,当您向表单添加一个项时,该项在表单类中声明为私有字段,如下所示:

private System.Windows.Forms.Label label1;

因此它不会从引用表单的另一个程序集访问。它实际上与C#vs vb.net无关。

很抱歉没有回答您的问题,只是想知道为什么您不能翻译所有内容?你试过翻译机吗?完全没有区别。C#和VB.Net都编译为MSIL。你只需引用dll并开始使用它的对象,就像它是任何其他C#dll一样。是的,但实际上它们没有很好地工作:/我试图自己翻译它,但我无法到处翻译。我知道你可以添加dll,但无论如何还是要谢谢你。但是我问了一些不同的问题。)但是我把它们改成了公共的。或者他们的活动可能是:P所以没有办法吗?事实上,我再次检查,我看到我改变了。这些是Form1.Designer.cs private System.Windows.Forms.Button btnExit中的代码;private System.Windows.Forms.Button btnBrowse;private System.Windows.Forms.OpenFileDialog opnPath;public System.Windows.Forms.label1;public System.Windows.Forms.label2;public System.Windows.Forms.Timer tmrBypass;