路过及;将字符串数组读取到C DLL过程

路过及;将字符串数组读取到C DLL过程,c,arrays,string,dll,dllexport,C,Arrays,String,Dll,Dllexport,此DLL过程接收字符串数组,并根据找到的空终止数返回数组大小: __declspec(dllexport) int sendStrings(char charArray[]) { char* p = charArray; for (; *p != '\0'; ++p) { //MessageBox(NULL, LPTSTR(charArray), TEXT("DLL"), 0); } int arraySize = p - charArra

此DLL过程接收字符串数组,并根据找到的空终止数返回数组大小:

__declspec(dllexport) int sendStrings(char charArray[])
{
    char* p = charArray;
    for (; *p != '\0'; ++p)
    {
        //MessageBox(NULL, LPTSTR(charArray), TEXT("DLL"), 0);
    }
    int arraySize = p - charArray;
    return arraySize;
}
如何将这些单独的以null结尾的字符串中的每一个分配给过程中的单独字符串变量

或者,有没有更好的方法将字符串数组传递给这样的DLL过程

C#调用例程:

List<string> strArr = new List<string>();
strArr.Add("first");
strArr.Add("second");
strArr.Add("third");

sendStrings(strArr.ToArray());
List strArr=new List();
添加(“第一”);
添加(“第二”);
补充(“第三”);
sendStrings(strArr.ToArray());

DLL如何分解字符串(第一、第二、第三)

请发布charArray[]是如何定义的。传递给此函数的是什么?电流输出是多少?预期输出是什么?如果是我。。传递
char**charArray
并使顶级数组中的最后一个条目为空。与char*argv[]参数非常相似,main()添加了调用代码……我想您应该看看这里