У меня есть утилита C++
, которая принимает argv[]
аргументы. Один из аргументов должен быть преобразован и использован в качестве адреса памяти при вызове API Windows, который требует, чтобы этот адрес был LPCVOID
согласно документации. Я попытался сделать следующее:
int main(int argc, CHAR* argv[])
{
if (argc < 3) {
cout << "Arg1 and Arg2 are required.";
exit(EXIT_FAILURE);
}
LPCVOID address = (LPCVOID)argv[1];
cout << address;
// some other stuff here
return 0;
}
Однако адрес используется неправильно, и приведенный выше оператор cout
печатает адрес после преобразования как 01297FFA
, когда вход argv[1]
равен 161551C
. Любая помощь по исправлению этого приветствуется.
ПРАВКА, чтобы включить команду, которую я выполнил:
myprog.exe 161551C