преобразование строки в массив байтов - PullRequest
1 голос
/ 13 июля 2011

Я хотел конвертировать string в array из bytes.Как я могу это сделать?

На самом деле я хотел прочитать из файла и преобразовать все эти данные в array из bytes.

Если преобразовать, как я могу получить размер этого array?

После получения массива байтов я хотел получить указатель типа LPVOID и заставить его указывать на этот массивбайт, чтобы использовать функцию BOOL WritePrinter( __in HANDLE hPrinter, __in LPVOID pBuf, __in DWORD cbBuf, __out LPDWORD pcWritten );

Второй аргумент требует указатель на массив байтов.Но я не знаю ни одного метода, который делает это.

Ответы [ 2 ]

4 голосов
/ 13 июля 2011

Вы можете преобразовать string в char*, используя

char* bytes = str.c_str();

Длина может быть получена через

int len = str.length();

Указатель может быть просто приведен к LPVOID

LPVOID ptr = (LPVOID) bytes;
2 голосов
/ 13 июля 2011

Вы можете получить доступ к данным в std::string, вызвав функцию-член std::string::data(), которая вернет const char*, или вы можете просто использовать std::string::operator[] манипулировать std::string, как если бы это был массив символов.

Если вы хотите использовать его как вектор, вы можете создать его с помощью:

std::vector<char> myVector(myString.beging(), myString.end());
char *myCharPtr = &myVector.front();

Редактировать: Вероятно, это самый быстрый / простой способ ...

std::string myStr = "testing";
char *myCharPtr = &myStr[0];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...