在一个C++当中,有这样一个函数,
bool Des_Go(char *Out,char *In,long datalen,const char *Key,int keylen,bool Type = ENCRYPT);
我想在C#当中调用它,怎么样的调用?又怎么样的使用呢?
这里面传入的参数是指针,C#里面不是基本不用指针吗?
所以让我感觉很没有办法.
请哪位朋友帮忙一下了...
最好给一个实例代码..很多天了,不知道怎么解决

解决方案 »

  1.   

    在你的泪中使用方法:
    [DllImport("你的.dll",CharSet=CharSet.Ansi)]
    public static extern  bool Des_Go(String Out, String In, long datalen,String Key,int keylen,bool Type);即可在你的代码中使用
      

  2.   

    [DllImport("your.dll")]
    public static extern bool Des_Go(string Out,string In,int datalen,string Key,int keylen,bool Type);
      

  3.   

    或者将String 改成StringBuilder也可
      

  4.   

    using System.Text;
    using System.Runtime.InteropServices;[DllImport("VC.DLL", EntryPoint="GetName")]
    public static extern int GetName(    
        int intPara1,
        out intPara2,
        ref intPara3,
        string strPara4,
        out string strPara5,
        ref string strPara6,
        StringBuilder strPara7);
    部分参数对照表:
    C++                I/O     C# 
    char path[255]     O       StringBuilder
    KCA_DIR            I       int
    LPCSTR             I       string
    int                I       int
    LPSTR              O       StringBuilder
    int*               O       out int
    DWORD              I       int
    DWORD*             O       out int
    BOOL               I       bool
    long*              O       out long另:StringBuilder在使用时,必须指定大小:
    StringBuilder strPara = new StringBuilder(255);
      

  5.   

    谢谢各位的帮助!我按照你们的方法试了一下,但是在运行的时候出现了:System.NotSupportedException这样的错误提示.说是不支持.我这个想要在PDA上实现3DES算法,他说不支持,是不是DLL的写法超出了范围啊?