Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[c++][WinApi] Wyszukiwanie plików.

Ostatnio zmodyfikowano 2014-06-17 15:06
Autor Wiadomość
AssSoft
Temat założony przez niniejszego użytkownika
[c++][WinApi] Wyszukiwanie plików.
» 2014-06-15 23:37:09
Witam, chciałem napisać program który znajdzie pliki JPG i BMP w określonych katalogach, i będzie je w określonym odstępie czasu ustawiał jako tapetę na pulpit.
Każdego dnia tygodnia używałby innego katalogu.

W trakcie pisania części kodu odpowiedzialnej za pokazywanie użytkownikowi zawartości katalogu danego dnia kompilator wywalił mi... No, raczej trudno określić jakiego rodzaju błędy.

Kod:
C/C++
#include "WWall_mainhead.hpp"
#include "dll.h"
#include <windows.h>
#include <windowsx.h>
#include <ctime>
#include <string>

const WORD ID1_TIMER = 1;
const WORD ID2_TIMER = 2;
lisplik LP[ 100000000 ];
int LPn = - 1;
HDC hdc;
HWND hstartp;
HWND hsavep;
HWND hdayslis;
HWND hobrlis;
HWND hsettimp;
HWND htimouttx;
HWND hobrftx;
int daysCboxlastpoz = - 1;
int daysCboxactpoz = - 1;

/* This is where all the input to the window goes to */
LRESULT CALLBACK WndProc( HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam ) {
    switch( Message ) {
       
        /* Upon destruction, tell the main thread to stop */
    case WM_DESTROY: {
            PostQuitMessage( 0 );
            break;
        }
    case WM_TIMER:
        {
            WIN32_FIND_DATA Data;
            if( wParam == ID1_TIMER )
            {
                int obrtyp;
                daysCboxactpoz = ComboBox_GetCurSel( hdayslis );
                if( daysCboxactpoz != daysCboxlastpoz )
                {
                    LPn = - 1;
                    DestroyWindow( hobrlis );
                    daysCboxlastpoz = ComboBox_GetCurSel( hdayslis );
                    hobrlis = CreateWindowEx( WS_EX_CLIENTEDGE, "LISTBOX", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER | CBS_DROPDOWNLIST,
                    155, 5, 150, 200, hwnd, NULL, GetModuleHandle( NULL ), NULL );
                    daysCboxlastpoz++;
                    HANDLE hjpg;
                    HANDLE hbmp;
                    switch( daysCboxlastpoz )
                    {
                    case 1:
                        {
                            hjpg = FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/1/*jpg" ), & Data );
                            hbmp = FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/1/*bmp" ), & Data );
                            if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/1/*.jpg" ), & Data ) == INVALID_HANDLE_VALUE )
                            {
                                if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/1/*.bmp" ), & Data ) == INVALID_HANDLE_VALUE )
                                {
                                    goto end;
                                }
                                else
                                {
                                    LP++;
                                    LP[ LPn ].filetype = 0;
                                }
                            }
                            else
                            {
                                LP++;
                                LP[ LPn ].filetype = 1;
                            }
                        }
                    case 2:
                        {
                            hjpg = FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/2/*jpg" ), & Data );
                            hbmp = FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/2/*bmp" ), & Data );
                            if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/2/*.jpg" ), & Data ) == INVALID_HANDLE_VALUE )
                            {
                                if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/2/*.bmp" ), & Data ) == INVALID_HANDLE_VALUE )
                                {
                                    goto end;
                                }
                                else
                                {
                                    LP++;
                                    LP[ LPn ].filetype = 0;
                                }
                            }
                            else
                            {
                                LP++;
                                LP[ LPn ].filetype = 1;
                            }
                        }
                    case 3:
                        {
                            hjpg = FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/3/*jpg" ), & Data );
                            hbmp = FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/3/*bmp" ), & Data );
                            if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/3/*.jpg" ), & Data ) == INVALID_HANDLE_VALUE )
                            {
                                if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/3/*.bmp" ), & Data ) == INVALID_HANDLE_VALUE )
                                {
                                    goto end;
                                }
                                else
                                {
                                    LP++;
                                    LP[ LPn ].filetype = 0;
                                }
                            }
                            else
                            {
                                LP++;
                                LP[ LPn ].filetype = 1;
                            }
                        }
                    case 4:
                        {
                            hjpg = FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/4/*jpg" ), & Data );
                            hbmp = FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/4/*bmp" ), & Data );
                            if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/4/*.jpg" ), & Data ) == INVALID_HANDLE_VALUE )
                            {
                                if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/4/*.bmp" ), & Data ) == INVALID_HANDLE_VALUE )
                                {
                                    goto end;
                                }
                                else
                                {
                                    LP++;
                                    LP[ LPn ].filetype = 0;
                                }
                            }
                            else
                            {
                                LP++;
                                LP[ LPn ].filetype = 1;
                            }
                        }
                       
                    case 5:
                        {
                            hjpg = FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/5/*jpg" ), & Data );
                            hbmp = FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/5/*bmp" ), & Data );
                            if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/5/*.jpg" ), & Data ) == INVALID_HANDLE_VALUE )
                            {
                                if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/5/*.bmp" ), & Data ) == INVALID_HANDLE_VALUE )
                                {
                                    goto end;
                                }
                                else
                                {
                                    LP++;
                                    LP[ LPn ].filetype = 0;
                                }
                            }
                            else
                            {
                                LP++;
                                LP[ LPn ].filetype = 1;
                            }
                        }
                    case 6:
                        {
                            hjpg = FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/6/*jpg" ), & Data );
                            hbmp = FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/6/*bmp" ), & Data );
                            if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/6/*.jpg" ), & Data ) == INVALID_HANDLE_VALUE )
                            {
                                if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/6/*.bmp" ), & Data ) == INVALID_HANDLE_VALUE )
                                {
                                    goto end;
                                }
                                else
                                {
                                    LP++;
                                    LP[ LPn ].filetype = 0;
                                }
                            }
                            else
                            {
                                LP++;
                                LP[ LPn ].filetype = 1;
                            }
                        }
                    case 7:
                        {
                            hjpg = FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/7/*jpg" ), & Data );
                            hbmp = FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/7/*bmp" ), & Data );
                            if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/7/*.jpg" ), & Data ) == INVALID_HANDLE_VALUE )
                            {
                                if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/7/*.bmp" ), & Data ) == INVALID_HANDLE_VALUE )
                                {
                                    goto end;
                                }
                                else
                                {
                                    LP++;
                                    LP[ LPn ].filetype = 0;
                                }
                            }
                            else
                            {
                                LP++;
                                LP[ LPn ].filetype = 1;
                            }
                        }
                    }
                    LP[ LPn ].daynum = daysCboxlastpoz;
                    LP[ LPn ].filename = Data.cFileName;
                    LPn++;
                    while( FindNextFile( hbmp, & Data ) )
                    {
                        LP[ LPn ].filetype = 0;
                        LP[ LPn ].daynum = daysCboxlastpoz;
                        LP[ LPn ].filename = Data.cFileName;
                        LPn++;
                    }
                    FindClose( hbmp );
                    while( FindNextFile( hjpg, & Data ) )
                    {
                        LP[ LPn ].filetype = 1;
                        LP[ LPn ].daynum = daysCboxlastpoz;
                        LP[ LPn ].filename = Data.cFileName;
                        LPn++;
                    }
                    FindClose( hjpg );
                   
                    daysCboxlastpoz--;
                    end:;
                }
            }
            if( wParam == ID2_TIMER )
            {
               
            }
            break;
        }
    case WM_LBUTTONUP:
        {
            break;
        }
       
        /* All other messages (a lot of them) are processed using default procedures */
        default:
        return DefWindowProc( hwnd, Message, wParam, lParam );
    }
    return 0;
}

/* The 'main' function of Win32 GUI programs: this is where execution starts */
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) {
    WNDCLASSEX wc; /* A properties struct of our window */
    HWND hwnd; /* A 'HANDLE', hence the H, or a pointer to our window */
    MSG Msg; /* A temporary location for all messages */
   
    /* zero out the struct and set the stuff we want to modify */
    memset( & wc, 0, sizeof( wc ) );
    wc.cbSize = sizeof( WNDCLASSEX );
    wc.lpfnWndProc = WndProc; /* This is where we will send messages to */
    wc.hInstance = hInstance;
    wc.hCursor = LoadCursor( NULL, IDC_ARROW );
   
    /* White, COLOR_WINDOW is just a #define for a system color, try Ctrl+Clicking it */
    wc.hbrBackground =( HBRUSH )( COLOR_WINDOW + 1 );
    wc.lpszClassName = "WindowClass";
    wc.hIcon = LoadIcon( NULL, IDI_APPLICATION ); /* Load a standard icon */
    wc.hIconSm = LoadIcon( NULL, IDI_APPLICATION ); /* use the name "A" to use the project icon */
    if( !RegisterClassEx( & wc ) ) {
        MessageBox( NULL, "Window Registration Failed!", "Error!", MB_ICONEXCLAMATION | MB_OK );
        return 0;
    }
    hwnd = CreateWindowEx( WS_EX_CLIENTEDGE, "WindowClass", "WindowsWall", WS_VISIBLE | WS_OVERLAPPEDWINDOW,
    CW_USEDEFAULT, /* x */
    CW_USEDEFAULT, /* y */
    1000, /* width */
    500, /* height */
    NULL, NULL, hInstance, NULL );
    if( hwnd == NULL ) {
        MessageBox( NULL, "Window Creation Failed!", "Error!", MB_ICONEXCLAMATION | MB_OK );
        return 0;
    }
    hdayslis = CreateWindowEx( WS_EX_CLIENTEDGE, "COMBOBOX", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER | CBS_DROPDOWNLIST,
    5, 5, 150, 200, hwnd, NULL, hInstance, NULL );
    SendMessage( hdayslis, CB_ADDSTRING, 0,( LPARAM ) "Poniedziałek" );
    SendMessage( hdayslis, CB_ADDSTRING, 0,( LPARAM ) "Wtorek" );
    SendMessage( hdayslis, CB_ADDSTRING, 0,( LPARAM ) "Środa" );
    SendMessage( hdayslis, CB_ADDSTRING, 0,( LPARAM ) "Czwartek" );
    SendMessage( hdayslis, CB_ADDSTRING, 0,( LPARAM ) "Piątek" );
    SendMessage( hdayslis, CB_ADDSTRING, 0,( LPARAM ) "Sobota" );
    SendMessage( hdayslis, CB_ADDSTRING, 0,( LPARAM ) "Niedziela" );
    WIN32_FIND_DATA DATA;
    bool allfilesready = CheckFiles();
    if( allfilesready == false )
    {
        MessageBox( NULL, "Błąd krytyczny, brak możliwości kontynuowania pracy programu. Zalecana reinstalacja", "Error!", MB_ICONEXCLAMATION | MB_OK );
        waitsec( 3 );
        PostQuitMessage( 0 );
    }
    /*
    This is the heart of our program where all input is processed and
    sent to WndProc. Note that GetMessage blocks code flow until it receives something, so
    this loop will not produce unreasonably high CPU usage
    */
    if( SetTimer( hwnd, ID1_TIMER, 100, NULL ) == 0 )
         MessageBox( hwnd, "Nie można utworzyć timera!", "Error", MB_ICONSTOP );
   
    while( GetMessage( & Msg, NULL, 0, 0 ) > 0 ) { /* If no error is received... */
        TranslateMessage( & Msg ); /* Translate key codes to chars if present */
        DispatchMessage( & Msg ); /* Send it to WndProc */
    }
    return Msg.wParam;
}

C/C++
//dllmain


/* Replace "dll.h" with the name of your header */
#include "dll.h"
#include <windows.h>
#include <ctime>


bool CheckFiles()
{
    bool a = false;
    bool b = false;
    WIN32_FIND_DATA DATA;
    if( FindFirstFile( "C:/programs/WindowsWall/OBR", & DATA ) == INVALID_HANDLE_VALUE )
    {
        a = true;
        if( CreateDirectoryA( "C:/programs/WindowsWall/OBR", NULL ) == 0 )
        {
            b = true;
        }
    }
    if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/1" ), & DATA ) == INVALID_HANDLE_VALUE )
    {
        a = true;
        if( CreateDirectoryA( "C:/programs/WindowsWall/OBR/1", NULL ) == 0 )
        {
            b = true;
        }
    }
    if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/2" ), & DATA ) == INVALID_HANDLE_VALUE )
    {
        a = true;
        if( CreateDirectoryA( "C:/programs/WindowsWall/OBR/2", NULL ) == 0 )
        {
            b = true;
        }
    }
    if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/3" ), & DATA ) == INVALID_HANDLE_VALUE )
    {
        a = true;
        if( CreateDirectoryA( "C:/programs/WindowsWall/OBR/3", NULL ) == 0 )
        {
            b = true;
        }
    }
    if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/4" ), & DATA ) == INVALID_HANDLE_VALUE )
    {
        a = true;
        if( CreateDirectoryA( "C:/programs/WindowsWall/OBR/4", NULL ) == 0 )
        {
            b = true;
        }
    }
    if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/5" ), & DATA ) == INVALID_HANDLE_VALUE )
    {
        a = true;
        if( CreateDirectoryA( "C:/programs/WindowsWall/OBR/5", NULL ) == 0 )
        {
            b = true;
        }
    }
    if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/6" ), & DATA ) == INVALID_HANDLE_VALUE )
    {
        a = true;
        if( CreateDirectoryA( "C:/programs/WindowsWall/OBR/6", NULL ) == 0 )
        {
            b = true;
        }
    }
    if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/7" ), & DATA ) == INVALID_HANDLE_VALUE )
    {
        a = true;
        if( CreateDirectoryA( "C:/programs/WindowsWall/OBR/7", NULL ) == 0 )
        {
            b = true;
        }
    }
    if( a == true )
    {
        MessageBox( NULL, "Nie znaleziono części folderów/plików, zostały stworzone. Program będzie kontynuować działanie.", "Error", MB_ICONEXCLAMATION | MB_OK );
    }
    if( b == true )
    {
        MessageBox( NULL, "Błąd przy tworzeniu folderów/plików.", "Error", MB_ICONEXCLAMATION | MB_OK );
        return false;
    }
    return true;
}
int waitsec( float time )
{
    clock_t czasS;
    clock_t stoper = time * CLOCKS_PER_SEC;
    czasS = clock();
    while( clock() - czasS < stoper )
        ;
   
    return 0;
}

int waitmsec( float time )
{
    time = time / 1000;
    clock_t czasS;
    clock_t stoper = time * CLOCKS_PER_SEC;
    czasS = clock();
    while( clock() - czasS < stoper )
        ;
   
    return 0;
}

int waitmin( float time )
{
    time = time * 60;
    clock_t czasS;
    clock_t stoper = time * CLOCKS_PER_SEC;
    czasS = clock();
    while( clock() - czasS < stoper )
        ;
   
    return 0;
}

BOOL WINAPI DllMain( HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved )
{
    switch( fdwReason )
    {
    case DLL_PROCESS_ATTACH:
        {
            break;
        }
    case DLL_PROCESS_DETACH:
        {
            break;
        }
    case DLL_THREAD_ATTACH:
        {
            break;
        }
    case DLL_THREAD_DETACH:
        {
            break;
        }
    }
   
    /* Return TRUE on success, FALSE on failure */
    return TRUE;
}

C/C++
#ifndef _DLL_H_
#define _DLL_H_

#if BUILDING_DLL
#define DLLIMPORT __declspec(dllexport)
#else
#define DLLIMPORT __declspec(dllimport)
#endif
#include <windows.h>
struct lisplik
{
    int daynum;
    LPSTR filename;
    int filetype; // 0 - bmp; 1 - jpg
};

extern "C"
{
    bool DLLIMPORT CheckFiles();
    int DLLIMPORT waitsec( float time );
    int DLLIMPORT waitmsec( float time );
    int DLLIMPORT waitmin( float time );
}

#endif

Błędy:
c:\program files (x86)\dev-cpp\mingw64\x86_64-w64-mingw32\lib\crt2.o In function `pre_cpp_init':
140 c:\crossdev\src\mingw-w64-svn\mingw-w64-crt\crt\crtexe.c (.text+0x16): relocation truncated to fit: R_X86_64_PC32 against symbol `_newmode' defined in .bss section in C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib/libmingw32.a(lib64_libmingw32_a-_newmode.o)
145 c:\crossdev\src\mingw-w64-svn\mingw-w64-crt\crt\crtexe.c (.text+0x1d): relocation truncated to fit: R_X86_64_PC32 against symbol `_dowildcard' defined in .bss section in C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib/libmingw32.a(lib64_libmingw32_a-wildcard.o)
c:\program files (x86)\dev-cpp\mingw64\x86_64-w64-mingw32\lib\crt2.o In function `check_managed_app':
340 c:\crossdev\src\mingw-w64-svn\mingw-w64-crt\crt\crtexe.c (.text+0x71): relocation truncated to fit: R_X86_64_PC32 against symbol `mingw_initltsdrot_force' defined in .bss section in C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib/libmingw32.a(lib64_libmingw32_a-tlssup.o)
341 c:\crossdev\src\mingw-w64-svn\mingw-w64-crt\crt\crtexe.c (.text+0x7b): relocation truncated to fit: R_X86_64_PC32 against symbol `mingw_initltsdyn_force' defined in .bss section in C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib/libmingw32.a(lib64_libmingw32_a-tlssup.o)
342 c:\crossdev\src\mingw-w64-svn\mingw-w64-crt\crt\crtexe.c (.text+0x85): relocation truncated to fit: R_X86_64_PC32 against symbol `mingw_initltssuo_force' defined in .bss section in C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib/libmingw32.a(lib64_libmingw32_a-tlssup.o)
343 c:\crossdev\src\mingw-w64-svn\mingw-w64-crt\crt\crtexe.c (.text+0x8f): relocation truncated to fit: R_X86_64_PC32 against symbol `mingw_initcharmax' defined in .bss section in C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib/libmingw32.a(lib64_libmingw32_a-charmax.o)
c:\program files (x86)\dev-cpp\mingw64\x86_64-w64-mingw32\lib\crt2.o In function `pre_c_init':
112 c:\crossdev\src\mingw-w64-svn\mingw-w64-crt\crt\crtexe.c (.text+0xa1): relocation truncated to fit: R_X86_64_PC32 against symbol `mingw_app_type' defined in .bss section in C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib/libmingw32.a(lib64_libmingw32_a-mingw_helpers.o)
118 c:\crossdev\src\mingw-w64-svn\mingw-w64-crt\crt\crtexe.c (.text+0xc1): relocation truncated to fit: R_X86_64_PC32 against symbol `_fmode' defined in .bss section in C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib/libmingw32.a(lib64_libmingw32_a-xtxtmode.o)
116 c:\crossdev\src\mingw-w64-svn\mingw-w64-crt\crt\crtexe.c (.text+0xc8): relocation truncated to fit: R_X86_64_PC32 against symbol `__onexitend' defined in COMMON section in C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib/libmingw32.a(lib64_libmingw32_a-atonexit.o)
116 c:\crossdev\src\mingw-w64-svn\mingw-w64-crt\crt\crtexe.c (.text+0xcf): relocation truncated to fit: R_X86_64_PC32 against symbol `__onexitbegin' defined in COMMON section in C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib/libmingw32.a(lib64_libmingw32_a-atonexit.o)
118 c:\crossdev\src\mingw-w64-svn\mingw-w64-crt\crt\crtexe.c (.text+0xd6): additional relocation overflows omitted from the output
C:\projekty\WindowsWall\collect2.exe [Error] ld returned 1 exit status

log kompilacji:
Building Makefile "C:\projekty\WindowsWall\Makefile.win"
Wykonywanie  make...
mingw32-make.exe -f "C:\projekty\WindowsWall\Makefile.win" all
g++.exe DATA/main.o -o ../../programs/WindowsWall/DATA/WindowsWall.exe -L"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib" -L"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib" -static-libgcc -L"C:/programs/WindowsWall/DATA" -mwindows ../WWallDLL/libWWallDLL.a ../WWallDLL/WWallDLL.dll ../../programs/WindowsWall/DATA/WWallDLL.dll -g3

c:/program files (x86)/dev-cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/lib/../lib/crt2.o: In function `pre_cpp_init':
c:/crossdev/src/mingw-w64-svn/mingw-w64-crt/crt/crtexe.c:140:(.text+0x16): relocation truncated to fit: R_X86_64_PC32 against symbol `_newmode' defined in .bss section in C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib/libmingw32.a(lib64_libmingw32_a-_newmode.o)
c:/crossdev/src/mingw-w64-svn/mingw-w64-crt/crt/crtexe.c:145:(.text+0x1d): relocation truncated to fit: R_X86_64_PC32 against symbol `_dowildcard' defined in .bss section in C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib/libmingw32.a(lib64_libmingw32_a-wildcard.o)
c:/program files (x86)/dev-cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/lib/../lib/crt2.o: In function `check_managed_app':
c:/crossdev/src/mingw-w64-svn/mingw-w64-crt/crt/crtexe.c:340:(.text+0x71): relocation truncated to fit: R_X86_64_PC32 against symbol `mingw_initltsdrot_force' defined in .bss section in C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib/libmingw32.a(lib64_libmingw32_a-tlssup.o)
c:/crossdev/src/mingw-w64-svn/mingw-w64-crt/crt/crtexe.c:341:(.text+0x7b): relocation truncated to fit: R_X86_64_PC32 against symbol `mingw_initltsdyn_force' defined in .bss section in C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib/libmingw32.a(lib64_libmingw32_a-tlssup.o)
c:/crossdev/src/mingw-w64-svn/mingw-w64-crt/crt/crtexe.c:342:(.text+0x85): relocation truncated to fit: R_X86_64_PC32 against symbol `mingw_initltssuo_force' defined in .bss section in C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib/libmingw32.a(lib64_libmingw32_a-tlssup.o)
c:/crossdev/src/mingw-w64-svn/mingw-w64-crt/crt/crtexe.c:343:(.text+0x8f): relocation truncated to fit: R_X86_64_PC32 against symbol `mingw_initcharmax' defined in .bss section in C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib/libmingw32.a(lib64_libmingw32_a-charmax.o)
c:/program files (x86)/dev-cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/lib/../lib/crt2.o: In function `pre_c_init':
c:/crossdev/src/mingw-w64-svn/mingw-w64-crt/crt/crtexe.c:112:(.text+0xa1): relocation truncated to fit: R_X86_64_PC32 against symbol `mingw_app_type' defined in .bss section in C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib/libmingw32.a(lib64_libmingw32_a-mingw_helpers.o)
c:/crossdev/src/mingw-w64-svn/mingw-w64-crt/crt/crtexe.c:118:(.text+0xc1): relocation truncated to fit: R_X86_64_PC32 against symbol `_fmode' defined in .bss section in C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib/libmingw32.a(lib64_libmingw32_a-xtxtmode.o)
c:/crossdev/src/mingw-w64-svn/mingw-w64-crt/crt/crtexe.c:116:(.text+0xc8): relocation truncated to fit: R_X86_64_PC32 against symbol `__onexitend' defined in COMMON section in C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib/libmingw32.a(lib64_libmingw32_a-atonexit.o)
c:/crossdev/src/mingw-w64-svn/mingw-w64-crt/crt/crtexe.c:116:(.text+0xcf): relocation truncated to fit: R_X86_64_PC32 against symbol `__onexitbegin' defined in COMMON section in C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib/libmingw32.a(lib64_libmingw32_a-atonexit.o)
c:/crossdev/src/mingw-w64-svn/mingw-w64-crt/crt/crtexe.c:118:(.text+0xd6): additional relocation overflows omitted from the output
collect2.exe: error: ld returned 1 exit status

mingw32-make.exe: *** [../../programs/WindowsWall/DATA/WindowsWall.exe] Error 1

Compilation failed after 0,27 seconds with errors


Używam Orwell Dev-c++ 5.6.2, domyślny kompilator.

Więcej informacji nie umiem podać bo po prostu... Nie rozumiem tych błędów.
P-112143
maly
» 2014-06-16 13:19:22
lisplik LP[ 100000000 ];
 spróbuj zmniejszyć rozmiar tablicy albo alokować ją dynamicznie.
W
switch( daysCboxlastpoz )
 masz 7 razy ten sam kod różniący się tylko numerem w nazwie folderu, szczęście dla Ciebie że nie musisz obsłużyć stu folderów.
P-112156
AssSoft
Temat założony przez niniejszego użytkownika
» 2014-06-17 00:22:55
"lisplik LP[ 100000000 ]; spróbuj zmniejszyć rozmiar tablicy albo alokować ją dynamicznie." Zadziałało, w sumie to... Nikt nie wsadzi tam więcej niż 100 grafik, a co dopiero 100000000. Dziękuję
"W switch( daysCboxlastpoz ) masz 7 razy ten sam kod różniący się tylko numerem w nazwie folderu, szczęście dla Ciebie że nie musisz obsłużyć stu" Masz racje, zrobienie tego było głupotą, tym bardziej że kilka razy zdarzyło mi się zrobić błąd, potem wszystkie case zmieniać... i na koniec zorientować się że tu też był błąd, albo że w którymś się pomyliłem.

Zadam jeszcze jedno pytanie, nie warto pod nie zakładać nowego wątku bo i tak miałby dokładnie tą samą nazwę.

Otóż mimo iż w katalogu "C:\programs\WindowsWall\OBR\1" znajdują się 2 pliki typu JPG. Program jednak nie wykrywa ich. Co może być tego przyczyną?
Kod taki sam, oczywiście dodałem
SendMessage( hobrlis, LB_ADDSTRING, 0,( LPARAM ) Data.cFileName );
 w kluczowych miejscach. Oraz poprawiłem błąd.
P-112182
maly
» 2014-06-17 07:27:16
Do sprawdzenia czy ścieżka istnieje jest PathFileExists.
W
switch( daysCboxlastpoz )
 nie ma żadnego break więc przeleci po wszystkich case.
Czemu próbujesz wyszukać każde rozszerzenie osobno, przeszukaj raz cały folder a pliki z odpowiednim rozszerzeniem dodaj do listy.

Z kodem w takiej postaci to niewiele pomogę bo nie da się tego czytać a analizować mi się nie chce.

PS. Im mniej kodu w kodzie tym lepiej.
P-112184
AssSoft
Temat założony przez niniejszego użytkownika
» 2014-06-17 15:06:13
Moje własne lenistwo mnie zniszczyło...
Następnym razem muszę to zrobić inaczej, zmieniać ten kod raczej mi się nie opłaca, ale fakt "Im mniej kodu w kodzie tym lepiej". Chyba kiedyś po prostu zrobię DLL z funkcją wyszukującą pliki.
 
Dziękuję.
P-112190
« 1 »
  Strona 1 z 1