先在引用选取你需要用的这个dll,在程序中添加类,举个简单的例子给你,
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Runtime.InteropServices;
using C1.C1Zip;namespace Util
{
#region
/// <summary>
/// This Class is used for get or set local machine time
/// </summary>
public class Cls_ChangeDT
{
//this function is used for get local machine time
[DllImport("Kernel32.dll")]
public static extern void GetLocalTime(SystemTime st); //this function is used for set local machine time
[DllImport("Kernel32.dll")]
public static extern void SetLocalTime(SystemTime st); //this structure define a systemtime
[StructLayout(LayoutKind.Sequential)]
public class SystemTime
{
public ushort wYear;
public ushort wMonth;
public ushort wDayOfWeek;
public ushort wDay;
public ushort wHour;
public ushort wMinute;
public ushort wSecond;
public ushort wMilliseconds;
}
}
}

解决方案 »

  1.   

    回答的什么啊,人家问你“用vc做的mfc dll,函数都是包含在类里的,这种情况下怎么找vDllImport的入口啊”,我也遇到这个问题,还没有解决,高手来看看
      

  2.   

    这种情况直接引用较为麻烦,以下可以参考:
    1、使用TLBIMP命令将非托管dll转化为可托管的引用,楼主的问题很可能这样可以解决。这个时候需要使用者对dll的内容十分清楚,包括引用的函数接口,参数等;
    2、如果想使用从C++来实现托管环境中没有提供支持的功能,最好使用Vc++。net生成ATL控件,这样成功后系统会自动编译并且注册,只要在控件面板中添加该控件就可以了,这种方法的好处是可以在对象浏览器中看到控件的方法申明!!
      

  3.   

    先谢过haohaohaohao大虾,能不能说得详细一些??TLBIMP命令我没听说过?哪能找到相关得参考?
      

  4.   

    在你的项目中添加引用你的mfc dll,
    这样VS.net会自动对你的unmanaged Code进行包装,
    接下去就同其他组件一样使用就行了,
    不过里面的一些方法和属性类型被转变成了object类型。
      

  5.   

    关键是你需要一个全局并且为dll输出的函数.
      

  6.   

    我能想到的唯一办法是使用Managed C++做一个中间层,把Mananged调用转成C++ Object Call。因为VC++.NET可以做Unmananged/Mananged混合编程。TLBIMP是针对COM组件的,和这个没有关系;由于.NET不直接支持C++使用的thiscall调用规范,也不可能直接用DllImport解决。
      

  7.   

    其实 wangsaokui(无间道II(前传)) 已经回答了,入口就是Dll里的函数.
    你要对里面的函数比较清楚.
      

  8.   

    to qqchen79(知秋一叶 [MS MVP]) :不一定要MC++吧?例如作一个输出包含这些函数的dll也是可行的:void * CreateMyClass();void VisitMyClassMethodA(void* pclass,int arg1,int arg2);void DestroyMyClass(void* pclass);也是可行的。
      

  9.   

    To Lostinet: 这个的确也行。不过既然还要用C++做Wrapper,不如直接用MC++,再C#一边的代码就不需要[DllImport]或者ReleaseMyClass乐。:)