Тут размещают свои топики новички в С/С++.

Тема в разделе "LANGS.C", создана пользователем nitrotoluol, 4 мар 2007.

  1. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    Booster
    Тогда выражение упростится до GetProcAddress ;)
     
  2. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    GoldFinch
    Ты о чём? Как понимаю, у тебя ключ строка, а значение адрес функции. Вот и сделай ключ std::string.
     
  3. Forever

    Forever Виталий

    Публикаций:
    0
    Регистрация:
    12 апр 2008
    Сообщения:
    244
    Можно, но только 4 символа (в MSVS2008). Вообще стандарт C оставляет количество символов, с помощью которых можно инициализировать область памяти, на усмотрение компилятора. Не удивлюсь, если есть такие, которые поддерживают написанный тобой пример.
     
  4. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    Booster
    у меня на входе константа-строка (параметр шаблона), на выходе - константа-хеш (перечисление или статическая константа член класса)
     
  5. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    GoldFinch
    у меня на входе константа-строка (параметр шаблона), на выходе - константа-хеш (перечисление или статическая константа член класса)
    Что за огород у тебя? Хочешь быстро получать хеш по строке? Шаблоны тут зачем?
     
  6. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    Booster
    я хочу получить хеш из строки во время компиляции, так чтобы в скомпилированном бинарнике был только хеш, а не строка
     
  7. 4e

    4e New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2009
    Сообщения:
    2
    Я тока-тока начал, и ещё ничего толком не понял :dntknw:
    Тем не менее, хотелось бы поинтересоваться. Через Turbo c++ (или turbo explorer, немного пока путаюсь в названиях) я какбы научился создавать графическую оболочку, и немного освоил сам язык, но тут встала ситуационная проблема, хочется написать программа, которая из себя будет представлять просто рамку, в которую можно запихнуть ровно 6 (а может и более) цмд окошек, и они там фиксировались, и я спокойно мог перемешать одно окно а в нем были бы все остальные цмд. Вы не могли бы мне помочь, указав что именно надо изучать (именно в плане кода, думаю графическую оболочку я смогу создать, но и тут одолевают меня сомнения) чтобы это вышло.
     
  8. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    GoldFinch
    Зачем такой изврат?
     
  9. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    Booster
    так надо =\ обфускация например
     
  10. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    GoldFinch

    Вроде в C++0x собирались сделать возможность параметризовать шаблоны литерными строками - не уверен, надо уточнить.
     
  11. 4e

    4e New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2009
    Сообщения:
    2
    Ну подскажите мне, какой функцией можно в с++ открыть цмд файлы? :dntknw:
     
  12. mc black

    mc black Member

    Публикаций:
    0
    Регистрация:
    19 янв 2005
    Сообщения:
    213
    Адрес:
    Russia, N.Novgorod
    AndreyMust19, censored, Mikl___, спасибо за ваши ответы!

    Особенно мне помогла ссылка, данная Mikl___, полезная во всех отношениях. Приведу полностью параметры компилятора и линкера, которые позволили снизить размер простой консольной программки с 116K до 4,65K:
    Код (Text):
    1. cl /c /nologo /O1 /MD -GX GradeBook.cpp
    2. cl /c /nologo /O1 /MD -GX fig04_14.cpp
    3. link /SUBSYSTEM:CONSOLE /NOLOGO /RELEASE /FILEALIGN:16 /ALIGN:16 /merge:.rdata=.data /merge:.text=.data /merge:.reloc=.data /IGNORE:4108 /IGNORE:4078 fig04_14.obj GradeBook.obj
     
  13. _int2e_

    _int2e_ New Member

    Публикаций:
    0
    Регистрация:
    1 мар 2009
    Сообщения:
    124
    Ребят, как на сях проверить бит?

    например нужно проверить, включен ли старший бит
    я делаю так
    if ((_value & 0x80000000)!=0) ....

    а можно как-то проще? Или только так?
     
  14. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    Код (Text):
    1. if ((_value & 0x80000000)) ....
    Либо можно сдвиг сделать (>>)
     
  15. onSide

    onSide New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    476
    Код (Text):
    1. DOUBLE x = 12.434324234;
    2. CHAR cBuf[MAX_PATH];
    3. sprintf(cBuf,"%6.4g",x);
    4. OutputDebugStringA(cBuf);
    Получаю тупо текст "g" и все... Не могу понять почему. Пробовал и &x передавать, та же фигня.
    Пример утрирован, но суть проблемы та же...(
     
  16. MirrorBlack

    MirrorBlack Алексей

    Публикаций:
    0
    Регистрация:
    21 июн 2008
    Сообщения:
    249
    Адрес:
    Moscow
    Помогите с CreateWindow.
    hWnd = CreateWindowEx(NULL,RegisterClassEx(&wcex),0,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,NULL,wcex.hInstance,NULL);

    Проблемма в ATOM. В windows.h он определён как LPCWSTR. Как его можно переопределить в int не меняя windows.h?
     
  17. onSide

    onSide New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    476
    на 32 битной системе, размер указателя sizeof LPCWSTR = sizeof DWORD = sizeof int. Не пробовал просто (int)Var делать?
     
  18. MirrorBlack

    MirrorBlack Алексей

    Публикаций:
    0
    Регистрация:
    21 июн 2008
    Сообщения:
    249
    Адрес:
    Moscow
    onSide
    Имеется в виду:
    hWnd = CreateWindowEx(NULL,(int)RegisterClassEx(&wcex),0,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,NULL,wcex.hInstance,NULL);
    или:
    hATOM = RegisterClassEx(&wcex);
    hWnd = CreateWindowEx(NULL,(int)hATOM,0,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,NULL,wcex.hInstance,NULL);

    Так ошибка прежняя.
     
  19. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    MirrorBlack
    RegisterClassEx возвращает ATOM = WORD = short - 2 байта, число. А тебе, во втором параметре функции CreateWindowEx нужно передать указатель на строку с название класса окна. Если очень хочется, то можно сделать так:
    Код (Text):
    1. ATOM hATOM = RegisterClassEx(&wcex);
    2. TCHAR AtomName[1024];
    3. if(GetAtomName(hAtom,&AtomName,sizeof(AtomName)))
    4. {
    5.   CreateWindowEx(0,AtomName,....
     
  20. iZzz32

    iZzz32 Sergey Sfeli

    Публикаций:
    0
    Регистрация:
    3 сен 2006
    Сообщения:
    355
    MAKEINTATOM(...)
    Но зачем?!