你先用delphi调调看,如果没问题就是你的c#代码的问题

解决方案 »

  1.   

    你看看这个null是不是调用 string  add(String a)这个方法引起的,另外dllimport默认用stdcall调用方式,你试试其他调用方式看看。
      

  2.   

    请问:dllimport还有哪些调用方式?谢谢
      

  3.   

    将你需要调用的dll拷贝到与运行程序同一个目录下了吗?
    编译好的程序好像是在bin目录下的。也好像是在debug目录下。反正先放到一个目录再说!
      

  4.   

    还有:为什么是:e:\\project1.dll,是不是:e:\project1.dll啊?
      

  5.   

    enum CallingConvention指定调用在非托管代码中实现的方法所需的调用约定:Cdecl 调用方清理堆栈。它使您能够调用具有 varargs 的函数。 
    FastCall 此版本的 .NET 框架不支持该调用约定。 
    StdCall 被调用方清理堆栈。它是从托管代码调用非托管函数的默认约定。 
    ThisCall 第一个参数是 this 指针,它存储在寄存器 ECX 中。其他参数被推送到堆栈上。此调用约定用于对从非托管 DLL 导出的类调用方法。 
    Winapi 使用默认平台调用约定。例如,在 Windows 上它为 StdCall,在 Windows CE 上它为 Cdecl。 
      

  6.   

    都是[DllImport("e:\\project1.dll", CharSet=CharSet.Auto)]中的参数呀,看看DllImportAttribute类的文档,里面很全面的