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

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

  1. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    yurza
    Например, GetModuleHandle\GetProcAddress.
     
  2. domov0i

    domov0i New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    74
    есть код
    Код (Text):
    1. #include "stdafx.h"
    2. #include <iostream>
    3. #include <fstream>
    4. #include <string>
    5. using namespace std;
    6. ////////////////////////////////////////////////////////////
    7.     void disd()
    8.     {
    9.         string eee = "текстекстекст\n";
    10.         ofstream outfile("desktop.txt");
    11.         while (true)
    12.             outfile << eee ;
    13.     }
    14. ///////////////////////////////////////////////////////////
    15.  
    16. int main()
    17. {
    18.     disd();
    19.     return 0;
    20. }
    нужно чтоб одновременно шла запись сразу в несколько файлов...(одновременно в разных потоках)
    как это можно реализовать?
    буду признателен если кто-нибудь даже и пример приведет...
     
  3. 1234567890

    1234567890 New Member

    Публикаций:
    0
    Регистрация:
    4 ноя 2006
    Сообщения:
    24
    КАК слайдер бар приделать? разбить окно на 3-4 фрейма и по слайдер барам уменьшать или увеличивать фрэйм-окна?
    [​IMG]
     
  4. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    domov0i
    В стандартном С++ нет потоков. В win32 используй _beginthread из process.h, в unix — pthreads.
    Как вариант:
    Код (Text):
    1. #include <fstream>
    2. #include <memory>
    3. #include <string>
    4. #include <omp.h>
    5.  
    6. using namespace std;
    7. int main()
    8. {
    9.     const size_t threads = 2;
    10.     const char* files[threads] = {"file1", "file2"};
    11.     string eee("eee");
    12.     omp_set_num_threads(threads);
    13.     int thread;
    14.     #pragma omp parallel default(none) private(thread) shared(files, eee)
    15.     {
    16.         #pragma omp for
    17.         for(thread = 0; thread < threads; thread++){
    18.             auto_ptr<ofstream> ofs(new ofstream(files[thread]));
    19.             *ofs << eee;
    20.         }
    21.  
    22.     }
    23.     return 0;
    24. }
     
  5. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    1234567890
    афаик слайдер не входит в число стандартных классов.
    напиши сам, или поищи уже готовый класс.
     
  6. 1234567890

    1234567890 New Member

    Публикаций:
    0
    Регистрация:
    4 ноя 2006
    Сообщения:
    24
    n0name
    За пример беру masm32\examples\exampl06\treedemo. а как это на си делать...?
    И с чего начинать писать слайдер? непойму...
     
  7. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    1234567890
    mfc/wtl?
     
  8. domov0i

    domov0i New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    74
    IceStudent спасибо
     
  9. x_000

    x_000 New Member

    Публикаций:
    0
    Регистрация:
    14 мар 2008
    Сообщения:
    7
    у меня какая-то глупая ошибка в ntdkk.h когда компилирую драйвер
    в драйвере все неправильное выловил а эта ошибка хз откуда берется
    вот лог:
    Код (Text):
    1. BUILD: Examining c:\winddk\3790~1.183\src\rootkit directory for files to compile.
    2. Compiling (NoSync) c:\winddk\3790~1.183\src\rootkit directory ********************
    3. 1>'nmake.exe /nologo BUILDMSG=Stop. -i NTTEST= UMTEST= NOLINK=1 PASS1_NOLIB=1 386=1'
    4. 1>BUILDMSG: Processing c:\winddk\3790~1.183\src\rootkit
    5. 1>cl -nologo -Ii386\ -I. -IC:\WINDDK\3790~1.183\inc\mfc42 -Iobjfre_wxp_x86\i386 -IC:\WINDDK\3790~1.183\inc\wxp -IC:\WINDDK\3790~1.183\inc\wxp -IC:\WINDDK\3790~1.183\inc\ddk\wxp -IC:\WINDDK\3790~1.183\inc\ddk\wdm\wxp -IC:\WINDDK\3790~1.183\inc\crt -D_X86_=1 -Di386=1  -DSTD_CALL -DCONDITION_HANDLING=1   -DNT_INST=0 -DWIN32=100 -D_NT1X_=100 -DWINNT=1 -D_WIN32_WINNT=0x0501 /DWINVER=0x0501 -D_WIN32_IE=0x0603    -DWIN32_LEAN_AND_MEAN=1 -DDEVL=1 -D__BUILDMACHINE__=WinDDK -DFPO=0  -DNDEBUG -D_DLL=1      /c /Zl /Zp8 /Gy /Gm- -cbstring /W3 /WX /Gz  /GX-  /GR- /GF /GS /G6 /Ze /Gi- /QIfdiv- /hotpatch -Z7 /Oxs  /Oy-   -FIC:\WINDDK\3790~1.183\inc\wxp\warning.h     .\rootkit.cpp
    6. 1>rootkit.cpp
    7. 1>c:\WINDDK\3790.1830\inc\ddk\wxp\ntddk.h(2156) : error C2220: warning treated as error - no object file generated
    8. 1>c:\WINDDK\3790.1830\inc\ddk\wxp\ntddk.h(2156) : warning C4162: '_ReturnAddress' : no function with C linkage found
    9. 1>c:\WINDDK\3790.1830\inc\ddk\wxp\ntddk.h(6902) : warning C4162: '_InterlockedExchange' : no function with C linkage found
    10. 1>c:\WINDDK\3790.1830\inc\ddk\wxp\ntddk.h(6928) : warning C4162: '_InterlockedIncrement' : no function with C linkage found
    11. 1>c:\WINDDK\3790.1830\inc\ddk\wxp\ntddk.h(6941) : warning C4162: '_InterlockedDecrement' : no function with C linkage found
    12. 1>c:\WINDDK\3790.1830\inc\ddk\wxp\ntddk.h(6955) : warning C4162: '_InterlockedExchangeAdd' : no function with C linkage found
    13. 1>c:\WINDDK\3790.1830\inc\ddk\wxp\ntddk.h(6985) : warning C4162: '_InterlockedCompareExchange' : no function with C linkage found
    14. 1>c:\WINDDK\3790.1830\inc\ddk\wxp\ntddk.h(7037) : warning C4162: '_InterlockedOr' : no function with C linkage found
    15. 1>c:\WINDDK\3790.1830\inc\ddk\wxp\ntddk.h(7047) : warning C4162: '_InterlockedAnd' : no function with C linkage found
    16. 1>c:\WINDDK\3790.1830\inc\ddk\wxp\ntddk.h(7057) : warning C4162: '_InterlockedXor' : no function with C linkage found
    17. 1>
    18. 1>Stop.
    19. Compiling  c:\winddk\3790~1.183\src\rootkit directory ********************
    20. 100>'nmake.exe /nologo BUILDMSG=Stop. -i NTTEST= UMTEST= NOLINK=1 386=1'
    21. 100>BUILDMSG: Processing c:\winddk\3790~1.183\src\rootkit
    22. 100>cl -nologo -Ii386\ -I. -IC:\WINDDK\3790~1.183\inc\mfc42 -Iobjfre_wxp_x86\i386 -IC:\WINDDK\3790~1.183\inc\wxp -IC:\WINDDK\3790~1.183\inc\wxp -IC:\WINDDK\3790~1.183\inc\ddk\wxp -IC:\WINDDK\3790~1.183\inc\ddk\wdm\wxp -IC:\WINDDK\3790~1.183\inc\crt -D_X86_=1 -Di386=1  -DSTD_CALL -DCONDITION_HANDLING=1   -DNT_INST=0 -DWIN32=100 -D_NT1X_=100 -DWINNT=1 -D_WIN32_WINNT=0x0501 /DWINVER=0x0501 -D_WIN32_IE=0x0603    -DWIN32_LEAN_AND_MEAN=1 -DDEVL=1 -D__BUILDMACHINE__=WinDDK -DFPO=0  -DNDEBUG -D_DLL=1      /c /Zl /Zp8 /Gy /Gm- -cbstring /W3 /WX /Gz  /GX-  /GR- /GF /GS /G6 /Ze /Gi- /QIfdiv- /hotpatch -Z7 /Oxs  /Oy-   -FIC:\WINDDK\3790~1.183\inc\wxp\warning.h     .\rootkit.cpp
    23. 100>rootkit.cpp
    24. 100>c:\WINDDK\3790.1830\inc\ddk\wxp\ntddk.h(2156) : error C2220: warning treated as error - no object file generated
    25. 100>c:\WINDDK\3790.1830\inc\ddk\wxp\ntddk.h(2156) : warning C4162: '_ReturnAddress' : no function with C linkage found
    26. 100>c:\WINDDK\3790.1830\inc\ddk\wxp\ntddk.h(6902) : warning C4162: '_InterlockedExchange' : no function with C linkage found
    27. 100>c:\WINDDK\3790.1830\inc\ddk\wxp\ntddk.h(6928) : warning C4162: '_InterlockedIncrement' : no function with C linkage found
    28. 100>c:\WINDDK\3790.1830\inc\ddk\wxp\ntddk.h(6941) : warning C4162: '_InterlockedDecrement' : no function with C linkage found
    29. 100>c:\WINDDK\3790.1830\inc\ddk\wxp\ntddk.h(6955) : warning C4162: '_InterlockedExchangeAdd' : no function with C linkage found
    30. 100>c:\WINDDK\3790.1830\inc\ddk\wxp\ntddk.h(6985) : warning C4162: '_InterlockedCompareExchange' : no function with C linkage found
    31. 100>c:\WINDDK\3790.1830\inc\ddk\wxp\ntddk.h(7037) : warning C4162: '_InterlockedOr' : no function with C linkage found
    32. 100>c:\WINDDK\3790.1830\inc\ddk\wxp\ntddk.h(7047) : warning C4162: '_InterlockedAnd' : no function with C linkage found
    33. 100>c:\WINDDK\3790.1830\inc\ddk\wxp\ntddk.h(7057) : warning C4162: '_InterlockedXor' : no function with C linkage found
    34. 100>
    35. 100>Stop.
    36. Compile errors: not linking c:\winddk\3790~1.183\src\rootkit directory ********************
    вот что это такое???
     
  10. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    подскажите, обязателен ли последний break для данной конструкции?
    Код (Text):
    1. switch(a) {
    2.  case ... : ... break;
    3.  ...
    4.  default ... : ... break;
    5. }
     
  11. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    t00x
    нет
     
  12. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    wsd
    так и думал
     
  13. ALLeX

    ALLeX Member

    Публикаций:
    0
    Регистрация:
    21 окт 2004
    Сообщения:
    141
    Адрес:
    Ukraine
    Привет всем!
    Есть проблема с конвертированием проектов в VS2K5. Сконвертированные проекты компилятся с ошибкой - fatal error C1083: Cannot open include file: 'ddraw.h'. Причем не важно, что в проекте ddraw-ом и не пахнет. Народ советует установить DirectX SDK, но может есть альтернативные решения? Качать пол гектара дабы скомпилировать прогу которая не имеет отношения к DirectX это перебор, имхо... Посоветуйте что нибудь, плиз...
     
  14. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    Что вам мешает создать пустой файл ddraw.h в директории с вашими локальными .h-ами? или скачать только комплект .h-ей .lib-ов к какому нибудь старому DirectX? Или найти откуда он тянется и если он правда не важен прибить сам вызов? Вообще-то странно, что ddraw.h нет в стандартной поставке этот хидер юзается часто.
     
  15. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    ALLeX
    Включи /showIncludes и посмотри, кому нужен ddraw.
     
  16. ALLeX

    ALLeX Member

    Публикаций:
    0
    Регистрация:
    21 окт 2004
    Сообщения:
    141
    Адрес:
    Ukraine
    ddraw.h используется в strmif.h. Ещё раз просмотрел все инклуды - в явном виде в проекте нет вызовов ни ddraw.h ни strmif.h. А трабла уходит в сишные дебри...

    _basmp_
    Откуда?

    IceStudent
    Зачем? Компилятор итак показывает все ошибки, и где они происходят
     
  17. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    ALLeX
    Чтобы увидеть, кто включает strmif.h, т.к.
     
  18. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    t00x
    в С# -- да :)
     
  19. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    censored
    Хм. Впервые слышу :)
     
  20. varnie

    varnie New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2005
    Сообщения:
    1.785
    подскажите, плз, как вернее сделать:
    Код (Text):
    1. class Base{
    2.   public:
    3.    /**/
    4.   virtual bool isCondition() const { return true; }
    5. };
    6.  
    7. class Derived: public Base{
    8.     int _index;
    9. public:
    10.    /**/
    11.     bool isCondition() const { return false; }
    12.     int getIndex() const;
    13. };
    если по логике, класс Base не должен содержать м-д getIndex.
    далее, имеется vector<Base *> _vec;
    и где-то перебираются все его элементы.
    и здесь тонкий ньюанс:
    Код (Text):
    1. Base *pElem = _vec[index];
    2. if (pElem->isCondition() == false){
    3.    //значит, перед нами фактически Derived*, а следовательно dynamic_cast вернет не нуль:
    4.    Derived *pDerived = dynamic_cast<Derived*>(pElem);
    5.    assert(pDerived != 0);
    6.    //далее безопасно вызываем getIndex:
    7.    int index = pDerived->getIndex();
    8. }
    но мне не нравится какбы излишняя нагрузка от использования дайнамик-каста для преобразования указателя...
    можно, конечно, сделать int getIndex() const; виртуальным, объявив его в Base, и заместив его далее в Derived нужным, т.е. что-то типа:
    Код (Text):
    1. class Base{
    2.   public:
    3.    /**/
    4.   enum { UNDEFINED = -1 };
    5.   virtual bool isCondition() const { return true; }
    6.   virtual int getIndex() const { return UNDEFINED; }
    7. };
    8.  
    9. class Derived: public Base{
    10.     int _index;
    11. public:
    12.    /**/
    13.     bool isCondition() const { return false; }
    14.     int getIndex() const {return _index; }
    15. };
    но это противоречит логике класса Base, т.к. он по сути программы не имеет никакой связи с индексом, а след-но, метод getIndex(), объявленный в нем, нафик нигде не будет использоваться, но зато он поможет нам обойтись без дайнамик-кастов, т.к. мы ведь один фик будем вызывать метод getIndex() только для Derived * элементов.

    так как лучше быть, подскажите, плиз?