Есть такая проблемка - читаем из файла информацию, которая возвращается в виде указателя на буфер, этот буфер отображаем в TextBox'e для редактирования. Затем из TextBox'а нужно получить такой же буфер чтоб обновить информацию в файле.
Собственно вопрос как проще всего из String^ получить буфер содержащий текст. Вот что получилось у меня и оно работает:
Загрузка данных
ВыгрузкаLPVOID lplpvImageInfo;
OUT DWORD lpcbImageInfo;
if (!WIMGetImageInformation( sWim, &lplpvImageInfo, &lpcbImageInfo)) {
MessageBox::Show ("Error get image info");
return;
}
String^ XMLStr = Marshal::PtrToStringUni((IntPtr)lplpvImageInfo);
textBox1->Text = XMLStr;
Нельзя ли как-то попроще получить из textBox1->Text требуемый указатель LPVOID lplpvImageInfo?String^ XMLStr = textBox1->Text;
array<unsigned char>^ ubuf = System::Text::Encoding::Unicode->GetBytes(XMLStr);
int ssize = ubuf->Length;
unsigned char* aa = (unsigned char*) malloc(ssize * sizeof(unsigned char));
for(int i = 0; i < ssize; i++)
aa[i] = ubuf[i];
LPVOID lplpvImageInfo = aa;
OUT DWORD lpcbImageInfo = ssize;
if (!WIMSetImageInformation( sWim, lplpvImageInfo, lpcbImageInfo)) {
MessageBox::Show ("Error save image info");
return;
}
MessageBox::Show ("Saved");
Социальные закладки