ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #1931  
Старый 30.11.2008, 21:36
iv.
Moderator - Level 7
Регистрация: 21.03.2007
Сообщений: 1,200
Провел на форуме:
7134052

Репутация: 1204


По умолчанию

Цитата:
как преобразовать TCHAR в LPCSTR
#define TCHAR LPCSTR ;(

а вообще зачем? используй или юникод или аски, юникод+аски = не айс.
 

  #1932  
Старый 30.11.2008, 21:41
SVAROG
Постоянный
Регистрация: 13.02.2007
Сообщений: 406
Провел на форуме:
2706059

Репутация: 206
По умолчанию

нет, просто переопределить TCHAR в LPCSTR нельзя, они не совместимые ибо оба определины в винде, требуеться отправить переменную типа TCHAR в функцию которая требует в виде параметра LPCSTR
 

  #1933  
Старый 30.11.2008, 21:47
iv.
Moderator - Level 7
Регистрация: 21.03.2007
Сообщений: 1,200
Провел на форуме:
7134052

Репутация: 1204


По умолчанию

каст типа (LPCSTR) и компилятор всё схавает, за работоспособность не отвечаю..
 

  #1934  
Старый 30.11.2008, 21:53
SVAROG
Постоянный
Регистрация: 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 есть мой ИП в отладчике он есть
но мессаге бокс выводит только первый символ моего ИП
 

  #1935  
Старый 30.11.2008, 21:57
SVAROG
Постоянный
Регистрация: 13.02.2007
Сообщений: 406
Провел на форуме:
2706059

Репутация: 206
По умолчанию

в переменной szProductType мой ип есть, смотрел под отладчиком, но выводиться тока первый байт
 

  #1936  
Старый 30.11.2008, 22:01
iv.
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)
 

  #1937  
Старый 30.11.2008, 22:18
SVAROG
Постоянный
Регистрация: 13.02.2007
Сообщений: 406
Провел на форуме:
2706059

Репутация: 206
По умолчанию

iv.
'MessageBoxEx' : function does not take 4 arguments
 

  #1938  
Старый 30.11.2008, 22:49
SVAROG
Постоянный
Регистрация: 13.02.2007
Сообщений: 406
Провел на форуме:
2706059

Репутация: 206
По умолчанию

to iv.
всё равно выводит тока первый символ
 

  #1939  
Старый 30.11.2008, 23:06
iv.
Moderator - Level 7
Регистрация: 21.03.2007
Сообщений: 1,200
Провел на форуме:
7134052

Репутация: 1204


По умолчанию

Цитата:
to iv.
всё равно выводит тока первый символ
Либо там каким-то образом на второе место затисался символ конца строки, либо формат строки неверный. Код в студию.
 

  #1940  
Старый 30.11.2008, 23:56
SVAROG
Постоянный
Регистрация: 13.02.2007
Сообщений: 406
Провел на форуме:
2706059

Репутация: 206
По умолчанию

всё заработало
"Configuration Properties -> General
Character Set поставил "Use Multi-Byte Character Set"
стало выводить окошко с моим айпишником))
но как же всётаки преобразовать тип LPCSTR который возвращает функция RegQueryValueEx в обычный текстовый массив char
 
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ