void __stdcall PrintHead(char* myString) {
myString = "testIsOkey";
}
Это неверный код C ++.Он просто меняет указатель, который был передан функции.Это не имеет никаких побочных эффектов.Исправление:
void __stdcall PrintHead(char* myString) {
strcpy(myString, "testIsOkey");
}
Но никогда не пишите такой код взаимодействия, функция C ++ может легко уничтожить кучу мусора, собранную таким образом.Что именно и происходит в вашем коде, емкости StringBuilder недостаточно.Вы должны добавить дополнительный аргумент, который обеспечивает размер переданного буфера.Исправление:
void __stdcall PrintHead(char* myString, size_t bufferSize) {
strcpy_s(myString, bufferSize, "testIsOkey");
}
Передайте емкость строителя строки для этого дополнительного аргумента, например:
var buffer = new StringBuilder(666);
PrintHead(buffer, buffer.Capacity);
var result = buffer.ToString();