我对处理 DllImport 的东西没有经验,所以如果你们中的任何人都可以解决我的小问题,我会很高兴。我想导入一个在类中有一个方法的 dll。该方法应返回一个字符串数组。
所以这里有一些代码:
Form1.cs(调用位置):
...
public partial class Form1 : Form
{
[DllImport("lang.dll")]
public static extern string[] getValues();
// |
//error occures here v
string[] labels = getValues();
Status prgmStatus;
public Form1()
{
...
language.cs(我的 .dll 文件的类):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace lang
{
public class language
{
public language()
{
}
public string[] getValues()
{
string[] content =
{
"User",
"Password",
"Login",
"Create new account ->",
"Repeat password",
"E-Mail adress",
"Register",
"<- Back to Login"
};
return content;
}
}
}
因此,当我启动我的程序时,它会调用 dll 的方法,然后出现:
(图片在这里找到:
如何避免此错误并正确获取数组?
感谢您的回答和解决方案, Paedow
更新:
应该可以从此路径加载任何其他 .dll 文件,具有相同的结构但其他内容。该 dll 包含英文版 windows 窗体的标签。当有人想用他自己的语言编写这个程序时,他必须用他的标签编译一个 dll,然后替换这个 dll。
另一个更新: dll 文件不是在同一个解决方案中构建的。dll是自己的解决方案,我的程序中只会用到最终的.dll文件,所以没有参考。