解决方案 »

  1.   

    不确认,但是我只写个[DllImport(@"\bin_win32\kmdsapi.dll", EntryPoint = "?Init@CKmdsUserApi@@QAEHPBD@Z",CharSet=CharSet.Ansi]这么调用也会出错
      

  2.   

    [DllImport(@"\bin_win32\kmdsapi.dll", EntryPoint = "?Init@CKmdsUserApi@@QAEHPBD@Z",CharSet=CharSet.Ansi)]
            public extern static int Init(string szcfgpath);
    这么写也报上面那个错误
      

  3.   

    string 换StringBuild或者 ref string试了吗?
      

  4.   

    这个函数有其他的使用条件吗?例如先使用某个函数然后才能使用这个函数之类的,然后检查下这个DLL所使用的其他DLL都齐全,一般报内存错误就我遇见的有3种,1-DLL所引用的其他系统DLL不全,2-数据类型转换不正确,3--调用该函数之前有某个前置条件未达成
      

  5.   

    这个函数有其他的使用条件吗?例如先使用某个函数然后才能使用这个函数之类的,然后检查下这个DLL所使用的其他DLL都齐全,一般报内存错误就我遇见的有3种,1-DLL所引用的其他系统DLL不全,2-数据类型转换不正确,3--调用该函数之前有某个前置条件未达成这三个问题都已经考虑了!这是第一个要调用的方法!
      

  6.   

    导出windows标准动态库不行吗?
    还是本身函数名就是乱码的.
    def导出的函数 应该是直接能引用的呀
      

  7.   

    在调用没有错误的情况下,你要确认DLL是不是没有问题,不是所有的dll在任何环境下都没有BUG的。很多第三方的dll自身也会调用其他的dll,  所以情况会很复杂。你那一个其他人都没有用的dll来问,是没有意思的。在没有必须得用或无法确保dll一定没问题的情况,尽量避免使用。