如何使用C#中的DllImport处理进口DLL的退货?

如何使用C#中的DllImport处理进口DLL的退货?,c#,.net,dll,C#,.net,Dll,我没有处理DllImport的经验,所以如果你们中有人能解决我的小问题,我会很高兴。我想导入一个在类中有方法的dll。该方法应返回stringarray 下面是一些代码: 表1.cs(呼叫位置): language.cs(my.dll文件的类): 使用系统; 使用System.Collections.Generic; 使用System.Linq; 使用系统文本; 名称空间语言 { 公共类语言 { 公共语言() { } 公共字符串[]getValues() { 字符串[]内容= { “用户”, “

我没有处理DllImport的经验,所以如果你们中有人能解决我的小问题,我会很高兴。我想导入一个在类中有方法的dll。该方法应返回stringarray

下面是一些代码:

表1.cs(呼叫位置):

language.cs(my.dll文件的类):

使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
名称空间语言
{
公共类语言
{
公共语言()
{
}
公共字符串[]getValues()
{
字符串[]内容=
{
“用户”,
“密码”,
“登录”,
“创建新帐户->”,
“重复密码”,
“电子邮件地址”,
“注册”,

“你不必像@Simon Whitehead所说的那样去dlliport托管程序集。只要在你的项目中引用它,然后

var l = new lang.language();
string[] labels = l.getValues();

您不必像@Simon Whitehead所说的那样DllImport托管程序集。只需在项目中引用它,然后

var l = new lang.language();
string[] labels = l.getValues();

在使用托管DLL时,不应使用[DllImport],它应仅用于非托管DLL()

从现在起,每次我提到“dll”,我都是指“托管dll”

如果您希望使用dll编译应用程序(而不是在执行期间“手动”加载它,我猜您不希望…),您可以添加对以下内容的引用:

  • 编译的dll文件(“.NET引用”)
  • .dll项目(“项目引用”),仅当.dll项目和.exe项目位于同一解决方案中时

有关解决方案/项目的更多信息,请参见。

在使用托管DLL时,不应使用[DllImport],它应仅用于非托管DLL()

从现在起,每次我提到“dll”,我都是指“托管dll”

如果您希望使用dll编译应用程序(而不是在执行期间“手动”加载它,我猜您不希望…),您可以添加对以下内容的引用:

  • 编译的dll文件(“.NET引用”)
  • .dll项目(“项目引用”),仅当.dll项目和.exe项目位于同一解决方案中时

请参阅。有关解决方案/项目的详细信息,您可以。

您正在为托管程序集使用DllImport..DllImport用于非托管库。您是否考虑过使用多种基于反射的方法调用托管程序集代码?您还可以公开一个接口,然后通过您正在使用的其他程序集使用该接口ng DllImport用于托管程序集。.DllImport用于非托管库。您是否考虑过使用多种基于反射的方法调用托管程序集代码?您还可以公开一个接口,然后通过其他程序集使用该接口
var l = new lang.language();
string[] labels = l.getValues();