C ++ Windows, как преобразовать ‘unsigned int’ в ‘TCHAR *’?

Я в новичке в C ++ на Windows. Подскажите пожалуйста, как конвертировать unsigned int в TCHAR *?

2

Решение

Может быть, вы хотите преобразовать unsigned int в строку. Ты можешь использовать std::to_wstring если TCHAR определяется как WCHAR:

unsigned int x = 123;

std::wstring s = std::to_wstring(x);

Затем конвертировать s.c_str() к TCHAR*,

Также вы должны взглянуть на MultiByteToWideChar.

1

Другие решения

Обычный способ заключается в использовании swprintf печатать широкие символы в wchar_t (который TCHAR обычно определяется как).

Чтобы напечатать числа в TCHAR, вы должны использовать _stprintf как упоминает @hvd ниже (в приступе ярости). Таким образом, если UNICODE определяется, вы будете использовать широкие символы, и если UNICODE не определено, вы будете использовать символы ASCII.

int myInt = 400 ;
TCHAR buf[300] ; // where you put result
_stprintf( buf, TEXT( "Format string %d" ), myInt ) ;
4

Вы можете установить местоположение, указанное TCHAR *. (Вероятно, плохая идея …)

unsigned int ptr_loc = 0; // Obviously you need to change this.
TCHAR* mychar;
mychar = ptr_loc;

Или вы можете установить значение TCHAR, на которое указывает указатель. (Это, вероятно, то, что вы хотите. Хотя помните, что TCHAR может быть Unicode или ANSI, поэтому значение целого может измениться.)

unsigned int char_int = 65;
TCHAR* mychar = new TCHAR;
*mychar = char_int; // Will set char to 'A' in unicode.
0

я могу быть слишком поздно, но эта программа может помочь даже в визуальной студии

#include "stdafx.h"#include <windows.h>
#include <tchar.h>
#include <strsafe.h>

#pragma comment(lib, "User32.lib")

int _tmain(int argc, TCHAR *argv[])
{
int num = 1234;
TCHAR word[MAX_PATH];
StringCchCopy(word, MAX_PATH, TEXT("0000"));
for(int i = 3; i >= 0 ;i--)
{
word[i] = num%10 + '0';
num /= 10;
}
_tprintf(TEXT("word is %s\n"), word);
return 0;
}
0
TCHAR buf[5];
memset(buf, 0, sizeof(buf));
return _itot_s(num, buf, 10);

Смотрите эту ссылку MSDN

0
По вопросам рекламы [email protected]