我是一个有用的助手,可以将文本翻译成中文。
我正在尝试从一个C++ DLL导出函数返回一个字符串。我正在从C#调用此函数。我在互联网上看到了很多例子,现在感到非常困惑该怎么做。
我的C++代码导出函数如下:
当我尝试从C#调用这个函数时:
我在调用它时遇到了一个错误。我正在为WinCE 6.0创建它。
编辑------------------------
有没有类似的东西,我可以从C#向C++传递一个空缓冲区,然后C++函数将填充数据,我可以在C#中重复使用它。
我正在尝试从一个C++ DLL导出函数返回一个字符串。我正在从C#调用此函数。我在互联网上看到了很多例子,现在感到非常困惑该怎么做。
我的C++代码导出函数如下:
extern "C" __declspec(dllexport) char* __cdecl getDataFromTable(char* tableName)
{
std::string st = getDataTableWise(statementObject, columnIndex);
printf(st.c_str());
char *cstr = new char[st.length() + 1];
strcpy(cstr, st.c_str());
return cstr;
}
当我尝试从C#调用这个函数时:
[DllImport("\\SD Card\\ISAPI1.dll")]
private static extern string getDataFromTable(byte[] tablename);
static void Main(string[] args)
{
string str = getDataFromTable(byteArray);
Console.writeLine(str);
}
我在调用它时遇到了一个错误。我正在为WinCE 6.0创建它。
编辑------------------------
有没有类似的东西,我可以从C#向C++传递一个空缓冲区,然后C++函数将填充数据,我可以在C#中重复使用它。