我正在使用曾经打开的名为VZones的原始MMO,它们有一个dll文件,允许您调用此dll中的函数来执行程序中的某些操作。
我找到了一些VB.NET代码,我遇到的问题是将其转换为可与C#一起使用的方式(使用VS 2017)
使用它设置DLL调用,工作正常:
modelBuilder.Entity<Blog>().HasData(new Blog {BlogId = 1, Url = "http://sample.com"});
modelBuilder.Entity<Post>().HasData(
new {BlogId = 1, PostId = 1, Title = "First post", Content = "Test 1"},
new {BlogId = 1, PostId = 2, Title = "Second post", Content = "Test 2"});
问题是我需要将这个来自其他人的VB.NET代码转换为可以在C#中运行的代码。我尝试了一些不同的选项,但程序刚关闭,从不给我一个错误。
[DllImport("vzdapi.dll", CharSet = CharSet.Ansi, SetLastError = true)]
public static extern string DapiGetText(string BufferIn, int LengthIn, int Timeout);
问题出现在Conversions.ToString部分,我当然试图制作obj1.ToString()并且可能工作正常,但我认为被抓住的地方是它试图运行中间代码“Strings.Len(RuntimeHelpers.GetObjectValue(OBJ1))”。
有没有人有任何帮助可以将其变成可以在C#中运行的东西?谢谢!
答案 0 :(得分:-1)
我想知道转换是否必要,因为您定义的初始对象已经是字符串,请尝试以下解决方案:
string obj = new string(char.MinValue, Int16.MaxValue);
vzText.Text = this.DapiGetText(obj, obj.Length, 1500);