none
VC开发的普通dll文件,C#调用提示内存问题 RRS feed

  • 问题

  • VC自身调用的声明代码为:

    extern "C" __declspec(dllimport) bool DMatrixToDiagnosticTree(TCHAR* DMatrixPath, TCHAR* DiagTreePath);

    在C#中使用的声明代码为:

            [DllImport("MFDll.dll", EntryPoint = "DMatrixToDiagnosticTree")]

            static extern bool DMatrixToDiagnosticTree( string DMatrixPath, string DiagTreePath);

    编译正确,在运行时提示错误“尝试读取或写入受保护的内存。这通常指示其他内存已损坏”,请高人指点是哪里的问题?

    2011年7月12日 3:26

答案

  • 你好,

    将VC中的方法声明改为

    extern "C" __declspec(dllexport) bool DMatrixToDiagnosticTree(TCHAR* DMatrixPath, TCHAR* DiagTreePath)

    我测试了一下,这样就可以了


    Paul Zhou [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 lxn 2011年7月14日 7:39
    2011年7月13日 9:36

全部回复