有一个奇怪的,我知道它是愚蠢的东西,但我什么都看不到它!
我有一个在VB.net中创建的DLL(不,我不能改变它!:-))并且我从C#调用它。问题来自于在C#中创建对象,我得到的消息是它有“一些无效的参数”。
DLL中的构造函数代码如下:
Sub New(ByRef Connection As IConnection)
C#中的代码是:
IConnection conn = new Connection();
CustomObject test = new CustomObject(conn)
它对第一行感到满意,但它在第二行给出了错误消息(“一些无效的参数”)。
我还在VB.net中创建了一个辅助项目并调用了DLL,它在那里工作正常。
我做错了什么?
提前致谢,
安迪
答案 0 :(得分:2)
在C#中,如果参数为“ByRef”,则必须在调用函数
时指定它CustomObject test = new CustomObject(ref conn);
答案 1 :(得分:0)
我在几天之前遇到了类似的问题,所以我可以帮忙解决这个问题。我是新手,但在我的项目中,我有同样的问题(不是错误)。
是的,您可以在C#.NET项目中使用通过VB.NET构建的DLL。如果你有一个VB.NET DLL,你可以在没有任何C#.NET更改的情况下使用它。但有时,您需要注意platform选项。
.NET中有两个重要的功能:
编译产生 IL(中间语言)代码。所有.NET语言在编译时生成IL由JIT(即时)编译器编译。
这些语言都使用通用类型系统(CTS)并在相同的公共语言运行时(CLR)上运行。目标是生成易于互操作的代码。
所以,DLL不是问题。 你的错误可能是其他的,我不知道。
希望这有帮助。