L lincker Unregistered / Unconfirmed GUEST, unregistred user! 2002-05-21 #1 在c#中调用vc下写的dll总是出错。 我把全部代码拷到.net下,编译dll成功,再引用时报告:不是合法的程序集或组件。 应该怎么办?请高手指点!
M mikedeakins Unregistered / Unconfirmed GUEST, unregistred user! 2002-05-21 #2 常规dll代码不能引用。能够import的是.net class library dll。 正确调用方式: [DllImport("KERNEL32.DLL", EntryPoint="MoveFileW", SetLastError=true, CharSet=CharSet.Unicode, ExactSpelling=true, CallingConvention=CallingConvention.StdCall)] public static extern bool MoveFile(String src, String dst); 详细解释用DllImportAttribute class作为index查找msdn。
常规dll代码不能引用。能够import的是.net class library dll。 正确调用方式: [DllImport("KERNEL32.DLL", EntryPoint="MoveFileW", SetLastError=true, CharSet=CharSet.Unicode, ExactSpelling=true, CallingConvention=CallingConvention.StdCall)] public static extern bool MoveFile(String src, String dst); 详细解释用DllImportAttribute class作为index查找msdn。
L lincker Unregistered / Unconfirmed GUEST, unregistred user! 2002-05-22 #3 那我应该怎么办呢? 怎么编译成.net class library dll??
S savenight Unregistered / Unconfirmed GUEST, unregistred user! 2002-05-24 #4 1. 假设你用vc编的yourdll.dll中有如下函数: extern "C" _declspec(dllexport) intdo It(int a,int b) { return a+b; } //.... 2.在c#中调用如下: using System; using System.Runtime.InteropServices; class PInvoke1App { [DllImport("D://tmp//yourdll.dll")] static extern intdo It(int a,int b); public static void Main() { int i; i=doIt(1,2); Console.WriteLine(i.ToString()); Console.Read(); } }
1. 假设你用vc编的yourdll.dll中有如下函数: extern "C" _declspec(dllexport) intdo It(int a,int b) { return a+b; } //.... 2.在c#中调用如下: using System; using System.Runtime.InteropServices; class PInvoke1App { [DllImport("D://tmp//yourdll.dll")] static extern intdo It(int a,int b); public static void Main() { int i; i=doIt(1,2); Console.WriteLine(i.ToString()); Console.Read(); } }