Favicon Svethardware.cz  Svět hardware   Fórum Favicon Svetaudia.cz  Svět audia Favicon TVFreak.cz  TV Freak   Fórum Favicon Digimanie.cz  Digimanie   Fórum   Galerie Společnost oXy Online s.r.o.
Zobrazené výsledky: 1 až 12 z 12

Téma: inttostr()

  1. #1
    Nováček
    Registrace
    Sep 2003
    Příspěvků
    19

    Je v eVC nejaky ekvivalent fce. inttostr()

    (tzn. pro prevod integeru na string?)
    Odpovídat lze po přihlášení

  2. #2
    Starousedlík SMob
    Registrace
    Sep 2003
    Příspěvků
    814

    Možnosti jsou dvě:

    1) použití třídy CString a její metody Format
    2) použití wsprintf, což je vlastně to, co CString::Format provádí

    např.:
    Kód:
    CString str;
    int nTest = 10;
    str.Format(_T("%d"), nTest);
    Odpovídat lze po přihlášení



  3. #3
    Nováček
    Registrace
    Sep 2003
    Příspěvků
    19

    a kdyz ho chci dostat do LPCTSTR a pak vypsat na obrazovku?
    Odpovídat lze po přihlášení

  4. #4
    Starousedlík SMob
    Registrace
    Sep 2003
    Příspěvků
    814

    Nejsi v ničem omezenej. Stačí jen přetypování:

    Kód:
    LPTSTR lpszTest;
    wsprintf(lpszTest, _T("%d"), 10);
    DrawText(hDC, (LPCTSTR)lpszTest, -1, &rect, DT_LEFT);
    Toť vše
    Odpovídat lze po přihlášení

  5. #5
    Nováček
    Registrace
    Sep 2003
    Příspěvků
    19

    jsem asi blbej, ale kdyz tam dam:

    Kód:
    LPCTSTR szText;
    wsprintf(szText, _T("%d"), 10);
    pise mi to:

    'wsprintfW' : cannot convert parameter 1 from 'const unsigned short *' to 'unsigned short *'
    chjo... Ccko mi nikdy moc neslo. Ja radsi Pascal/Delphi
    Odpovídat lze po přihlášení

  6. #6
    Starousedlík SMob
    Registrace
    Sep 2003
    Příspěvků
    814

    Nene ... podívej se přesně na ten kód, co jsem ti napsal
    Odpovídat lze po přihlášení

  7. #7
    Nováček
    Registrace
    Sep 2003
    Příspěvků
    19

    a jo! :sarcastic:
    Odpovídat lze po přihlášení



  8. #8
    Nováček
    Registrace
    Sep 2003
    Příspěvků
    19

    muj uplne posledni problem (slibuju )

    po pridani #include <afx.h> (pro CString) mi nejde kompilace:
    (nic jineho jsem nemenil)



    uafxwce.lib(dllmodul.obj) : error LNK2005: _DllMain already defined in Test.obj
    uafxwce.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) already defined in coredll.lib(COREDLL.dll)
    uafxwce.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in coredll.lib(COREDLL.dll)
    uafxwce.lib(dllmodul.obj) : warning LNK4006: _DllMain already defined in Test.obj; second definition ignored
    uafxwce.lib(afxmem.obj) : warning LNK4006: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) already defined in coredll.lib(COREDLL.dll); second definition ignored
    uafxwce.lib(afxmem.obj) : warning LNK4006: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in coredll.lib(COREDLL.dll); second definition ignored
    Creating library X86Rel/Test.lib and object X86Rel/Test.exp
    X86Rel/Test.dll : fatal error LNK1169: one or more multiply defined symbols found
    Error executing link.exe.
    Odpovídat lze po přihlášení

  9. #9
    Starousedlík SMob
    Registrace
    Sep 2003
    Příspěvků
    814

    Tohle je problém. Třída CString patří do MFC (Microsoft Foundation Classes) a je součástí knihovny, která je distribuovaná spolu s eVC++3.0 Tahle knihovna má definovanou fci DLLMain stejně jako tvoje knihovna, kterou vytváříš (viz. zdrojáky) Není tedy možné linkovat do tvé DLL knihovnu (ani její část) MFC. Programování Today Plug-in je věcí čistého Win32 API. Proto se budeš muset obejít bez CString apod...
    Odpovídat lze po přihlášení

  10. #10
    Nováček
    Registrace
    Jan 2004
    Příspěvků
    23

    No a bez pouziti CString to jde napr. i takhle:

    Kód:
    TCHAR szStr[100];
    int nTest = 10;
    
    memset(szStr, 0, sizeof(TCHAR) * 100);
    _stprintf(szStr, _T("%d"), nTest);
    
    DrawText(hDC, (LPCTSTR)szStr, -1, &rect, DT_LEFT);
    Odpovídat lze po přihlášení

  11. #11
    Starousedlík SMob
    Registrace
    Sep 2003
    Příspěvků
    814

    Nebo pokud nechcete plýtvat stackem (obzvláště používáte-li dlouhé řetězce), pak doporučuji klasické použití datového typu LPTSTR místo pole TCHAR:

    Kód:
    int nLength = 10;
    LPTSTR lpszText = (LPTSTR)LocalAlloc(LPTR, sizeof(TCHAR) * nLength);
    if (lpszText == NULL)
       // chyba
    _stprintf(lpszText, _T("%d"), nLength);
    DrawText(hDC, (LPCTSTR)lpszText, -1, &rect, DT_LEFT);
    LocalFree((HLOCAL)lpszText);
    Odpovídat lze po přihlášení

  12. #12
    Občasný diskutér
    Registrace
    Aug 2003
    Příspěvků
    110

    A co _itoa?
    Kód:
    char *_itoa( int value, char *string, int radix );
    
    Parameters
    value --- Number to be converted 
    string -- String result 
    radix --- Base of value; must be in the range 2 – 36
    Odpovídat lze po přihlášení