本帖最后由 shilei831115 于 2012-05-25 21:36:36 编辑

解决方案 »

  1.   

    根据这里的error,可以在声明private delegate void FindPictures...前加上[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
    这样这个error可能不会出现,或者变成其它error,但CString的问题仍然未解决CString是MFC专门定义的字符串操作类,要使用,则要求MFC支持。如果dll要跨语言调用,则通常不应使用这些特定语言的特定类型。
    C#支持的平台调用字符串类型一般是以'\0'结尾的C类型字符串,没有任何的已有C#类型能和CString对应,在C#中直接使用CString几乎是不可能的。
    最靠谱的两种解决方法,要么修改这个FindPic.dll,把CString改为LPCTSTR等方式,要么要再写一个带MFC支持的dll,封装FindPic函数,间接的调用它
      

  2.   

    CString是mfc的,c#用不了,如果你不能修改dll,就不要用了,想起他办法
      

  3.   

    http://www.dreamdu.com/blog/2008/04/25/cs_cpp_functionpointer/