ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

30.11.2008, 21:36
|
|
Moderator - Level 7
Регистрация: 21.03.2007
Сообщений: 1,200
Провел на форуме: 7134052
Репутация:
1204
|
|
как преобразовать TCHAR в LPCSTR
#define TCHAR LPCSTR ;(
а вообще зачем? используй или юникод или аски, юникод+аски = не айс.
|
|
|

30.11.2008, 21:41
|
|
Постоянный
Регистрация: 13.02.2007
Сообщений: 406
Провел на форуме: 2706059
Репутация:
206
|
|
нет, просто переопределить TCHAR в LPCSTR нельзя, они не совместимые ибо оба определины в винде, требуеться отправить переменную типа TCHAR в функцию которая требует в виде параметра LPCSTR
|
|
|

30.11.2008, 21:47
|
|
Moderator - Level 7
Регистрация: 21.03.2007
Сообщений: 1,200
Провел на форуме: 7134052
Репутация:
1204
|
|
каст типа (LPCSTR) и компилятор всё схавает, за работоспособность не отвечаю..
|
|
|

30.11.2008, 21:53
|
|
Постоянный
Регистрация: 13.02.2007
Сообщений: 406
Провел на форуме: 2706059
Репутация:
206
|
|
Код:
#include "stdafx.h"
#include "windows.h"
#define BUFSIZE 80
#include <tchar.h>
#define TCHAR LPCSTR
int _tmain(int argc, _TCHAR* argv[])
{
HKEY hKey;
LPCSTR text;
DWORD dwBufLen=BUFSIZE;
TCHAR szProductType[BUFSIZE];
LONG lRet=RegOpenKeyEx( HKEY_LOCAL_MACHINE,TEXT("SYSTEM\\ControlSet001\\Services\\Tcpip\\Parameters\\Interfaces\\{2B69BB5-EB8E-48CE-8D1F-FA2CCF27B6EE}"), 0, KEY_QUERY_VALUE, &hKey );
if( lRet != ERROR_SUCCESS ) MessageBoxA(NULL, "НЕТ", "",MB_OK);
lRet = RegQueryValueEx( hKey, TEXT("DhcpIPAddress"), NULL, NULL, (LPBYTE) szProductType, &dwBufLen);
RegCloseKey( hKey );
text=(LPCSTR(szProductType));
MessageBoxA(NULL,text,"",MB_OK);
return 0;
}
выводит первый символ из всей строки
в DhcpIPAddress есть мой ИП в отладчике он есть
но мессаге бокс выводит только первый символ моего ИП
|
|
|

30.11.2008, 21:57
|
|
Постоянный
Регистрация: 13.02.2007
Сообщений: 406
Провел на форуме: 2706059
Репутация:
206
|
|
в переменной szProductType мой ип есть, смотрел под отладчиком, но выводиться тока первый байт
|
|
|

30.11.2008, 22:01
|
|
Moderator - Level 7
Регистрация: 21.03.2007
Сообщений: 1,200
Провел на форуме: 7134052
Репутация:
1204
|
|
text=(LPCSTR(szProductType));
омг
MessageBoxA(NULL,text,"",MB_OK);
используй MessageBoxEx
пс: и юникод (везде)
ппс: и вместо int _tmain(int argc, _TCHAR* argv[]) достаточно int main(void)
|
|
|

30.11.2008, 22:18
|
|
Постоянный
Регистрация: 13.02.2007
Сообщений: 406
Провел на форуме: 2706059
Репутация:
206
|
|
iv.
'MessageBoxEx' : function does not take 4 arguments
|
|
|

30.11.2008, 22:49
|
|
Постоянный
Регистрация: 13.02.2007
Сообщений: 406
Провел на форуме: 2706059
Репутация:
206
|
|
to iv.
всё равно выводит тока первый символ
|
|
|

30.11.2008, 23:06
|
|
Moderator - Level 7
Регистрация: 21.03.2007
Сообщений: 1,200
Провел на форуме: 7134052
Репутация:
1204
|
|
to iv.
всё равно выводит тока первый символ
Либо там каким-то образом на второе место затисался символ конца строки, либо формат строки неверный. Код в студию.
|
|
|

30.11.2008, 23:56
|
|
Постоянный
Регистрация: 13.02.2007
Сообщений: 406
Провел на форуме: 2706059
Репутация:
206
|
|
всё заработало
"Configuration Properties -> General
Character Set поставил "Use Multi-Byte Character Set"
стало выводить окошко с моим айпишником))
но как же всётаки преобразовать тип LPCSTR который возвращает функция RegQueryValueEx в обычный текстовый массив char
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|