我尝试使用汇编程序中的c#和dll库将第1个表的第1个元素复制到第2个表的第1个元素。
我的c#代码
[DllImport("mylib.dll", CallingConvention = CallingConvention.StdCall)]
private static extern char wypmacasm(string table, ref string tab2);
private void button4_Click(object sender, EventArgs e)
{
table= "German forces surrendered bla bla bla...."
char aux= 'x';
string p = "qwerty";
aux=asmproc(table, ref p);
textBox6.Text = aux.ToString();
textBox7.Text = p.ToString();
}
和我的asm代码
asmproc proc tab: dword, tab2: dword
mov esi, tab
mov al, byte ptr[esi]
ret
asmproc endp
它有效,在textBox6中我有char'G'
然后我想把这个元素复制到第二个表
asm code
asmproc proc tab: dword, tab2: dword
mov esi, tab
mov al, byte ptr[esi]
mov edi, tab2
mov byte ptr [edi], al
ret
asmproc endp
并且在ret程序崩溃后出现错误:GUI.exe中0x771EED0B(ntdll.dll)的未处理异常:0xC0000374:Stertazostałauszkodzona(参数:0x77224270)。
你知道如何将元素从第一张表复制到第二张,或者在这种情况下我做错了什么?