FindFirstFile, FindNextFile nefunguje – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

FindFirstFile, FindNextFile nefunguje – C / C++ – Fórum – Programujte.comFindFirstFile, FindNextFile nefunguje – C / C++ – Fórum – Programujte.com

 

Sorénybuzáš
~ Anonymní uživatel
2 příspěvky
5. 10. 2013   #1
-
0
-

Dobrý den,
Když zkompiluju program jako Debug, funkce FindFirstFile a FindNextFile normálně fungují.
Problém však nastává, když program zkompiluju jako Release. To se potom místo seznamu
Souborů vypíše náhodný text.

Děkuji předem za odpověď.

Přesný kód je tady:

{
  WIN32_FIND_DATA wfd;
  HANDLE hfind;
  hfind = FindFirstFile((App::GetHotelsDirectory()+L"\\*.hot").c_str(), &wfd);
  if(GetLastError() != ERROR_FILE_NOT_FOUND)
  {
    int index=0;
    std::wstring ws;
    do
    {
      if(!(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
      {
        try
        {
          ws = wfd.cFileName;
          if((index = ws.find(L".hot", 0)) != -1)
          ws.replace(index, wcslen(L".hot"), L"");							
          ListBox_AddString(lb_report, ws.c_str());
        }
        catch(std::out_of_range e)
        {
          std::wostringstream wos;
          wos << L"Nepodařilo se načíst hotely.\n\nPůvodní zpráva: " <<  e.what();
          MessageBox(hWnd, wos.str().c_str(), L"Chyba", MB_ICONERROR); return false;
        }
      }	
    }while(FindNextFile(hfind, &wfd) !=0);
  }
}
Nahlásit jako SPAM
IP: 88.102.98.–
Radek Chalupa
~ Redaktor
+1
Super člen
5. 10. 2013   #2
-
0
-

#1 Sorénybuzáš
ListBox_AddString bere ten text jako ANSI, a ty ho máš v Unicode. Použij místo toho zprávu LB_ADDSTRING.

Radek Chalupa 
- vývoj software na zakázku 
- školení programování (C/C++, WinAPI, ATL, COM, ActiveX, C#, NET Framework, MFC) 
http://www.radekchalupa.cz

Nahlásit jako SPAM
IP: 213.220.211.–
Sorénybuzáš
~ Anonymní uživatel
2 příspěvky
5. 10. 2013   #3
-
0
-

Nahradil jsem toto: ListBox_AddString(lb_report, ws.c_str());
tímto: SendMessageW(lb_report, LB_ADDSTRING, 0, (LPARAM)ws.c_str());


Bohužel výsledek je stejně špatný..

Nahlásit jako SPAM
IP: 88.102.98.–
Radek Chalupa
~ Redaktor
+1
Super člen
5. 10. 2013   #4
-
0
-

#3 Sorénybuzáš
Nepřekládáš to pro ANSI znakovou sadu? Pak to v nastavení projektu změň na Unicode (stejně používáš wstring a unicodové textové konstanty), a nebo musíš použít funkci SendMessageW (ta předpokládá jako LPARAM unicodový text).

Radek Chalupa 
- vývoj software na zakázku 
- školení programování (C/C++, WinAPI, ATL, COM, ActiveX, C#, NET Framework, MFC) 
http://www.radekchalupa.cz

Nahlásit jako SPAM
IP: 213.220.211.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 8 hostů

Podobná vlákna

Nefunguje IF? — založil RemykCzech

Nefunguje mi strcpy() — založil Bionik

Proč to nefunguje — založil Radim Krsička

NeheGL nefunguje — založil nh

Border nefunguje — založil to_jsem_ja

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý