从MVC.Net C#调用C ++库

时间:2018-08-15 07:31:29

标签: c# c++ asp.net-mvc

我为已经成功构建的代码创建了一个库。但是,当我从C#调用相同的代码时,它会给出错误并在“ std”上中断

这是我正在使用的C#代码。

  private const string DllFilePath = @"C:\Projects\\TestParser.dll";

            [DllImport(DllFilePath, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
            private extern static int test();

    public static int Test(int number)
            {
                return test();
            }

下面是C ++库代码。

extern "C"             //No name mangling
__declspec(dllexport)  //Tells the compiler to export the function
int                    //Function return type     
__stdcall

test()
{
    char  arg1[] = "C:\\Tools\\.csv";
    char  arg2[] = "C:\\Share\\test.csv";
    char *argv[] = { NULL, &arg1[0], &arg2[0] };
    int argc = (int)(sizeof(argv) / sizeof(argv[0]));

    if (argc == 2 && strcmp(argv[1], "-version") == 0)
    {
        return 1;
    }
    else if (argc % 2 != 1 || argc < 3)
    {
        return 2;
    }
    char base_file_name[] = "C:\\Test.csv";
    // For each file that was specified.
    for (S32 i = 1; i < argc; i += 2)
    {

        **std::string base_file_name(argv[i + 1]);**
    }

    return 10;
}

需要早期帮助。 以下是我得到的错误。

在未知模块中发生了类型为'System.AccessViolationException'的未处理异常。尝试读取或写入受保护的内存。

以下是应用以下提到的异常处理机制后收到的异常。

Error Details via Exception Handling

0 个答案:

没有答案