[ C / C++ ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. Rio-de-Janeiro

    Joined:
    27 Feb 2009
    Messages:
    0
    Likes Received:
    21
    Reputations:
    5
    Там в общем ооочень много текста, так что даже не поместилось все в самой консоли.
    Мне удалось попытаться скомпилировать код в IDE, но вылезло 6 ошибок:
    [​IMG]
     
    #4821 Rio-de-Janeiro, 21 Feb 2010
    Last edited: 21 Feb 2010
  2. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    в настройках криейтора кьют указан?
    Знакомые ошибки, только не помню, как я их починил. В данном случае у тебя не видится Qt компилеру.
    В переменных окружения путь до qt задан?
     
  3. Rio-de-Janeiro

    Joined:
    27 Feb 2009
    Messages:
    0
    Likes Received:
    21
    Reputations:
    5
    В настройках путь указал, а вот в переменных средах нет, сейчас попробую
     
  4. Rio-de-Janeiro

    Joined:
    27 Feb 2009
    Messages:
    0
    Likes Received:
    21
    Reputations:
    5
    Прописал путь до основной папки Qt, то же самое... В общем, никак.
     
    #4824 Rio-de-Janeiro, 21 Feb 2010
    Last edited: 21 Feb 2010
  5. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    QTDIR = C:\Qt\2009.05\qt

    внутри лежит configure.exe
     
    1 person likes this.
  6. Rio-de-Janeiro

    Joined:
    27 Feb 2009
    Messages:
    0
    Likes Received:
    21
    Reputations:
    5
    Это переменную создать? Если да, то не помогло.
    П.С. Мб гоу в аську? 248465
     
    #4826 Rio-de-Janeiro, 21 Feb 2010
    Last edited: 21 Feb 2010
  7. Fl0dER

    Fl0dER New Member

    Joined:
    22 Dec 2008
    Messages:
    81
    Likes Received:
    3
    Reputations:
    0
    Люди добрые покажите простой пример чтение функцией ReadFile текстового файла для дальнейшего вывода этого текста в MessageBox
     
  8. agrofyl2

    agrofyl2 New Member

    Joined:
    25 Apr 2008
    Messages:
    54
    Likes Received:
    4
    Reputations:
    0
    помогите пожалуйста
    Нужно поверх всех окон написать большими буквами текст.
    Ну а потом убрать.
    Приложение Win 32
     
  9. BastardFromHell

    Joined:
    5 Feb 2010
    Messages:
    50
    Likes Received:
    18
    Reputations:
    6
  10. agrofyl2

    agrofyl2 New Member

    Joined:
    25 Apr 2008
    Messages:
    54
    Likes Received:
    4
    Reputations:
    0
    Мне бы функцию чтоли... Я новичок сам врядли разберусь.
     
  11. BastardFromHell

    Joined:
    5 Feb 2010
    Messages:
    50
    Likes Received:
    18
    Reputations:
    6
    http://www.rsdn.ru/forum/winapi/3551012.flat.aspx
    но принцип примерно такой :)
    Code:
    #include <windows.h>
    #include <stdio.h>
    extern "C" WINBASEAPI HWND WINAPI GetConsoleWindow (); 
    
    int main()
    {
    	HWND hWindow = NULL;     // дескриптор окна
    	HDC hDeviceContext;      // контекст устройства
    	HPEN hPen;               // дескриптор пера
    	HGDIOBJ hObject;         // дескриптор GDI объекта
    
    	// получаем дескриптор окна
    	hWindow = GetConsoleWindow();
    
    	if (hWindow == NULL)
    	{
    		printf("Get console window failed.\n");
    
    		return 1;
    	}
    	else
    		printf("Cet console window is done.\n");
    
    	// получаем контекст устройства
    	hDeviceContext = GetDC(hWindow);
    	// создаем перо
    	hPen = CreatePen(PS_SOLID, 10, RGB(0, 255, 0));
    	// устанавливает перо
    	hObject = SelectObject(hDeviceContext, hPen);
    
    	// рисуем x
    	MoveToEx(hDeviceContext, 100, 200, NULL);
    	LineTo(hDeviceContext, 200, 100);
    	MoveToEx(hDeviceContext, 200, 200, NULL);
    	LineTo(hDeviceContext, 100, 100);
    	//y
    	MoveToEx(hDeviceContext, 300, 200, NULL);
    	LineTo(hDeviceContext, 400, 100);
    	MoveToEx(hDeviceContext, 300, 100, NULL);
    	LineTo(hDeviceContext, 350, 150);
    	//й
        MoveToEx(hDeviceContext, 500, 100, NULL);
    	LineTo(hDeviceContext, 500, 200);
    	LineTo(hDeviceContext, 600, 100);
    	LineTo(hDeviceContext, 600, 200);
    	MoveToEx(hDeviceContext, 540, 50, NULL);
    	LineTo(hDeviceContext, 560, 70);
    	LineTo(hDeviceContext, 580, 50);
    
    	// востанавливает старый объект
    	SelectObject(hDeviceContext, hObject);
    
    	// освобождаем объекты
    	DeleteObject(hPen);
    	ReleaseDC(hWindow, hDeviceContext);
    
    	return 0;
    }
     
    #4831 BastardFromHell, 22 Feb 2010
    Last edited: 22 Feb 2010
    1 person likes this.
  12. raven314

    raven314 New Member

    Joined:
    30 Jan 2009
    Messages:
    44
    Likes Received:
    2
    Reputations:
    0
    ребят, с+/ подойдет для использования его в процессе программирования микросхем авр\пик ? или все же мне за ассемблер садиться ?
     
  13. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    С подойдет.
     
  14. agrofyl2

    agrofyl2 New Member

    Joined:
    25 Apr 2008
    Messages:
    54
    Likes Received:
    4
    Reputations:
    0
    BastardFromHell спасибо
    Если кому надо вот что я накопал
    Code:
    void Draww(const char *string) {
    	
    	LOGFONT lf;
    	HFONT hf;
    
    	HDC hDeviceContext;      // контекст устройства
    	//HPEN hPen;               // дескриптор пера
    	HGDIOBJ old;         // дескриптор GDI объекта
    	// получаем контекст устройства (0 - hwid рабочего стола)
    	hDeviceContext = GetDC(0);
    
     	RtlZeroMemory(&lf, sizeof(lf));
    	lstrcpyA(lf.lfFaceName, "Arial");
    	lf.lfHeight = 42;
    	lf.lfWeight = FW_NORMAL;
    	lf.lfCharSet = RUSSIAN_CHARSET;
    	hf = CreateFontIndirect(&lf);
    
    	old = SelectObject(hDeviceContext, hf);
    	RECT rectt;
    	SetRect(&rectt, 0, 0, 1024, 768); 
    	HANDLE h=CreateEvent(0, true, false, "et");
    	DrawText(hDeviceContext, string, -1, &rectt, DT_LEFT);	
    	
    	WaitForSingleObject(h,1000);
    
    	// востанавливает старый объект
    	SelectObject(hDeviceContext, old);
    	// освобождаем объекты
    	DeleteObject(hf);
    	ReleaseDC(0, hDeviceContext);
    }
    Функция просто выводит текст на экран в левом верхнем углу.
    Только смотрите там строчка SetRect(&rectt, 0, 0, 1024, 768) экрано-зависимая, если надо то исправьте сами.
     
    #4834 agrofyl2, 22 Feb 2010
    Last edited: 22 Feb 2010
  15. ntldr

    ntldr Elder - Старейшина

    Joined:
    4 Dec 2007
    Messages:
    367
    Likes Received:
    140
    Reputations:
    23
    как обстоят дела в windows 7 с сырыми сокетами? Можно как-то завести их?
     
  16. BastardFromHell

    Joined:
    5 Feb 2010
    Messages:
    50
    Likes Received:
    18
    Reputations:
    6
    сейчас хотел длинну массвива посчитать, чёт не вышло -
    Code:
    #include <cstdio>
    #include <stddef.h>
    
    int main(void)
    {
    	ptrdiff_t diff;
    	int array[50];
    	for(int i = 0; i<50; i++)
    	{
    		array[i]=i+1;
    	}
    	printf("first: %d, last: %d, firstptr: %p lastptr: %p\n",array[0], array[49], array, &array[49] );
    	diff = &array[49] - &array[0];
    	printf("arraysize is: %d , diff: %p, sizeof(int): %d", diff/sizeof(int), diff, sizeof(int));
    	return 0;
    }
    вывод:
    Code:
    D:\dmc\bin>array_length.exe
    first: 1, last: 50, firstptr: 0012FE7C lastptr: 0012FF40
    arraysize is: 12 , diff: 00000031, sizeof(int): 4
    гдё я туплю?
     
    #4836 BastardFromHell, 22 Feb 2010
    Last edited: 22 Feb 2010
  17. Lee_fx

    Lee_fx Elder - Старейшина

    Joined:
    27 Sep 2008
    Messages:
    90
    Likes Received:
    14
    Reputations:
    0
    похожу тут
    diff/sizeof(int)
     
  18. BastardFromHell

    Joined:
    5 Feb 2010
    Messages:
    50
    Likes Received:
    18
    Reputations:
    6
    Limitations on Raw Sockets

    On Windows 7, Windows Server 2008 R2, Windows Vista, and Windows XP with Service Pack 2 (SP2), the ability to send traffic over raw sockets has been restricted in several ways:

    TCP data cannot be sent over raw sockets.
    UDP datagrams with an invalid source address cannot be sent over raw sockets. The IP source address for any outgoing UDP datagram must exist on a network interface or the datagram is dropped. This change was made to limit the ability of malicious code to create distributed denial-of-service attacks and limits the ability to send spoofed packets (TCP/IP packets with a forged source IP address).
    A call to the bind function with a raw socket is not allowed.
    ты гуглить не умеешь чтоли?
    сурс - http://msdn.microsoft.com/en-us/library/ms740548(VS.85).aspx
     
    1 person likes this.
  19. BastardFromHell

    Joined:
    5 Feb 2010
    Messages:
    50
    Likes Received:
    18
    Reputations:
    6
    а ну вот, да
    разница между двумя указателями на int - это уже смещение, кратное int - отсюда получается 49, а не 49/4
     
  20. ntldr

    ntldr Elder - Старейшина

    Joined:
    4 Dec 2007
    Messages:
    367
    Likes Received:
    140
    Reputations:
    23
    собственно это я уже находил, и ошибка оказалась совсем не в функции socket(). Спасибо
     
Thread Status:
Not open for further replies.