应用程序在执行下面的代码时崩溃了

时间:2015-03-10 10:40:01

标签: c++ vb.net

我从Dll调用函数跟随。

testVC2.dll

char * getcheck();

char * getcheck(){
    strcpy(Detail::AMessage, a.auth_answ.Check);
    return Detail::AMessage;
}

我的def文件。

LIBRARY
EXPORTS
  getcheck @1

我的VB代码

Public Declare Function getcheck Lib "testVC2.dll" () As String

 Console.WriteLine(getcheck() )

它给出了错误并且应用程序崩溃了但是当我尝试从函数返回整数时它可以工作。

2 个答案:

答案 0 :(得分:0)

尝试返回BSTR:

#include <comutil.h>

BSTR getcheck();

BSTR getcheck(){

    _bstr_t bstr1(a.auth_answ.Check);
    BSTR bstr;
    bstr = bstr1.copy();
    return bstr;
}   

答案 1 :(得分:0)

将字符串从C ++返回到托管语言的正常方法是将StringBuilder作为输出参数传递。

这样的事情:

//C++
// place your output message into str
void foo(char* str);

//C#
void foo(StringBuilder str);