Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » VC++ 6 Pro Problemme mit header

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
28.06.2004, 23:12 Uhr
~Johan
Gast


Hallo Jungs Ich habe ein Problem mit mein VC++ 6 Pro.
Also ich erstelle ein Projekt(Win32-Konselenanwendung/Einfache Anwendung)
dann binde ich meine header und dann kommt der restliche code. Ich bekomme dann aber nacher immer eine fehlermeldung das der header #include "StdAfx.h" nicht geöffnet werden kann. Die datei ist aber in mein projekt vorhanden. Habe ich vieleicht was falsch eingestellt in meiner Entwicklungsumgebung oder was muss ich tun.
Hier ist das program was probleme macht:

C++:
// dirCon.cpp : Definiert den Einsprungpunkt für die Konsolenanwendung.
//
#include "stdafx.h"
#define _WIN32_WINNT 0x0400

#include <afx.h>

#include <process.h>
#include <afxmt.h>
#include <AFXPRIV.H>

#include <Windows.h>
#include <iostream>

using namespace std;


void Thread_Acc(void* arg);
void Thread_Watch(void* arg);

//*******************************************************************
//Hauptprogramm
int main(int argc, char* argv[])
{
    int a;

    FILE * ini;
    char str1[100];
    CString str;

    ini = fopen("C\dir.ini", "r");

    int counter = 0;

    while (!feof(ini))
    {
        fscanf(ini, "%s\n", str1);
        printf("%s\n", str1);
        if (str1[0] != '[')
        {
            
            str = str1;
            str.Delete(0, 5);
            
            

            _beginthread( Thread_Watch, 0, (void*)(LPCTSTR)str);
            _beginthread( Thread_Acc, 0, (void*)(LPCTSTR)str);
            counter++;    
            //AfxMessageBox(str);
        }
    }

    printf("%d\n", counter);

    cin >> a;
    fclose(ini);
    ////////////////////////////////////////////////////////////
    return 0;
}

//********************************************************************
//Funktion zum erkenn der Dateiverschiebungen
void Thread_Watch(void* arg)
{
    HANDLE file;
    CString str = (LPCTSTR)arg;
    file = FindFirstChangeNotification(str, TRUE, FILE_NOTIFY_CHANGE_FILE_NAME);

    WaitForSingleObject(file, INFINITE);

    while (true)
    {
        FindNextChangeNotification(file);
        WaitForSingleObject(file, INFINITE);
    }

    FindCloseChangeNotification(file);
}

//********************************************************************
//Erkennen welche Datei verändert wurde
void Thread_Acc(void* arg)
{
    USES_CONVERSION;
    CString str = (LPCTSTR)arg;
    AfxMessageBox(str);
    HANDLE hDir = CreateFile(str,
                            FILE_LIST_DIRECTORY,
                            FILE_SHARE_READ | FILE_SHARE_DELETE | FILE_SHARE_WRITE,
                            NULL,
                            OPEN_EXISTING,
                            FILE_FLAG_BACKUP_SEMANTICS,
                            NULL);

    FILE_NOTIFY_INFORMATION Buffer[1024];
    DWORD BytesReturned;
    int i = 0;

    while (ReadDirectoryChangesW(hDir,
                                &Buffer,
                                sizeof(Buffer),
                                TRUE,
                                FILE_NOTIFY_CHANGE_SECURITY        |
                                FILE_NOTIFY_CHANGE_CREATION        |
                                FILE_NOTIFY_CHANGE_LAST_ACCESS    |
                                FILE_NOTIFY_CHANGE_LAST_WRITE    |
                                FILE_NOTIFY_CHANGE_SIZE            |
                                FILE_NOTIFY_CHANGE_ATTRIBUTES    |
                                FILE_NOTIFY_CHANGE_DIR_NAME        |
                                FILE_NOTIFY_CHANGE_FILE_NAME,
                                &BytesReturned,
                                NULL,
                                NULL))
    {
        CString filename = "";
        CString t_filename = "";

        switch (Buffer[0].Action)
        {
        case FILE_ACTION_ADDED:
            filename = CString(Buffer[ i ].FileName).Left(Buffer[ i ].FileNameLength /2);
            //AfxMessageBox(filename);
            filename = str + "\\" + filename;
            printf("Datei hinzugefuegt oder geloescht\n");

            t_filename = filename;
            t_filename.Delete(filename.GetLength() - 3, 3);
            //Kopie der Datei erstellen im selben Ordner die die richtigen Securityeisntellungen hat
            CopyFile(filename, t_filename, FALSE);
            //Original löschen
            DeleteFile(filename);
            //Kopie in Original umbenennen
            CopyFile(t_filename, filename, FALSE);
            //Kopie löschen
            DeleteFile(t_filename);
            break;
        case FILE_ACTION_REMOVED:
            filename = CString(Buffer[ i ].FileName).Left(Buffer[ i ].FileNameLength /2);
            //cout << "Datei entfernt" << endl;
            break;
        case FILE_ACTION_MODIFIED:
            filename = CString(Buffer[ i ].FileName).Left(Buffer[ i ].FileNameLength /2);
            //cout << "Attribute geaendert" << endl;
            break;
        }
    }
}




Ich währe echt dankbar wenn mir jemanden sagen könnte was ich da falsch mache

Danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
29.06.2004, 07:07 Uhr
Tommix



'Morgen

Zitat:

...(Win32-Konselenanwendung/Einfache Anwendung)


Für den ganzen afx-Kram brauchst Du eine Anwendung mit MFC-Unterstützung, würde ich sagen.

Gruss, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
29.06.2004, 21:12 Uhr
~JOhan
Gast


Hallo nochmal ich bins wieder. Irgendwie bin ich zu doof um ein normales Projekt zu erstellen unter dem ich dieses Programm zu faufen bringen kann.
Ich bitte euch fals jemanden mir eine detai beschreibung hier posten kann, wie ich es ein Projekt anlege, welche einstellund ich vornehmen muss und so weiter. Ich habe bis jetzt fasst alle Projekt typen erstellt die hier zu verfügung stehen aber der compiler sagt mir das die datei #include "stdafx.h"
nicht geöffnet werden kann.

Bitte bitte bitte bitte hilft mir ich verzweifele langsam

Danke Johan
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
29.06.2004, 21:24 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


schmeiss den include einfach raus und includiere nur die mfc-header die du auch brauchst... steht in der msdn welche funktionen welche mfc-header erfordern...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
29.06.2004, 23:12 Uhr
~Johan
Gast


Hi ich nochmal. Ich habe alles probiert aber es klapt nicht. ich habe die header rausgenomen welche ich der meinung war nicht benötigt zu werden aber ich bekomme dann eine folgende fehler angezeigt:
ordnersuch.cpp
cdokumente und einstellungen\mirena.sony\desktop\c++2\ordnersuch\ordnersuch.cpp(4) : fatal error C1083: vorkompilierte Header-Datei-Datei kann nicht geoeffnet werden: 'Debug/ordnersuch.pch': No such file or directory
Fehler beim Ausführen von cl.exe.

gffrrtd.obj - 1 Fehler, 0 Warnung(en)


Also was mache ich da falsch?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
29.06.2004, 23:23 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


auch auf die gefahr hin das ao mich wieder steinigen will... versuch mal unter projekt settings die vorkompilierten headerdateien auszuschalten und mach mal ein rebuild all
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
30.06.2004, 18:45 Uhr
Spacelord
Hoffnungsloser Fall


Also irgenwie ist hier ein und derselbe Code in mehreren Threads von (teilweise?) unterschiedlichen Leuten unterwegs.
www.fun-soft.de/showtopic.php?threadid=7871&time=1088611644
www.fun-soft.de/showtopic.php?threadid=7617&time=1088612316

Desweiteren weiss ich nicht wie es euch geht aber bei diesem MFC-WinApi-Standard Misch Masch laufen mir kalte Schauer den Rücken runter...

Zur Frage:
Du solltest mal probieren eine Konsolenanwendung zu erstellen,im ersten Dialog klickst du dann "Ein leeres Projekt" an.Unter den Projekteinstellungen kannst du unter Allgemein "MFC in einer gemeinsam genutzen DLL verwenden" auswählen.In diesem ganz speziellen Fall kannst du stdafx.h ruhig ganz aus dem Projekt nehmen.Im grossen und ganzen inkludiert der Header auch nur die Header die am Anfang des Codes inkludiert werden und soll für ne schnellere Komplilierung sorgen.
Ich behaupte aber mal dass dieses kleine Manko den Braten hier auch nicht mehr fett macht .

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
30.06.2004, 19:34 Uhr
~Johan
Gast


Hallo erstmal alle und insbesonder 'Spacelord'.
Also jetzt funktioniert das alles so wie es sein soll. Also besten dank an Spacelord. Das ist der beste beweis das mann hier wirklich hielfe bekommt.
Eine frage hätte ich allerdings noch. Kann mir jemanden sagen wo mann in diesen funktion den zeitabstand eingeben kann welche fest legt in welchen zeitabstenden das Programm das ordner überwachen soll. Ich weis es nicht ob überhaubt sowas hier implemtiert ist. Wenn nicht währe ich dankbar für ein vorschlag wie mann sowas machen könnte.

Danke Ihr Profi´s
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: