Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

11

18.05.2008, 18:03

Warum machst du den da eine Funktionsdeklaration? :roll:

Zitat

C-/C++-Quelltext

1
BOOL WINAPI MoveFile("c:\\Programme\\avi1\\*.*", "c:\\Programme\\avi2"); 

Gon

Treue Seele

  • »Gon« ist der Autor dieses Themas

Beiträge: 262

Wohnort: Nahe München

Beruf: Schüler (9. Klasse Gymnasium)

  • Private Nachricht senden

12

18.05.2008, 18:20

oh......sorry....... :oops: :oops: :oops:

danke ich probiers

GR-PA

Treue Seele

Beiträge: 326

Wohnort: Daheim

Beruf: Faulenzer

  • Private Nachricht senden

13

18.05.2008, 21:02

Zitat von »"TrommlBomml"«

uiuiui, was machst du denn da lustiges :D probiers ma so:

C-/C++-Quelltext

1
2
3
4
5
6
#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmd,int nShowCmd) 
{ 
  MoveFile("c:\\Programme\\avi1\\*.*", "c:\\Programme\\avi2");
}

.... *RÄUSPER**HUST HUST*
Und so zu machen wäre doch auch mal eine gute Idee:

C-/C++-Quelltext

1
2
3
4
5
6
7
#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmd,int nShowCmd) 
{ 
  MoveFile("c:\\Programme\\avi1\\*.*", "c:\\Programme\\avi2");
  return 0; // <- Siehe hier...

}
Signaturen werden überbewertet

Gon

Treue Seele

  • »Gon« ist der Autor dieses Themas

Beiträge: 262

Wohnort: Nahe München

Beruf: Schüler (9. Klasse Gymnasium)

  • Private Nachricht senden

14

19.05.2008, 10:50

ok danke ;)

ich hab beide getestet.

bei dem hier:

C-/C++-Quelltext

1
2
3
4
5
6
#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmd,int nShowCmd)
{
  MoveFile("c:\\Programme\\avi1\\*.*", "c:\\Programme\\avi2");
} 


kommen folgende meldungen:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
Temporäre Dateien und Ausgabedateien für "verschieben - Win32 Debug" werden gelöscht.
--------------------Konfiguration: verschieben - Win32 Debug--------------------
Kompilierung läuft...
verschieben.cpp
c:\dokumente und einstellungen\\eigene dateien\projekte\projekte\verschieben.cpp(8) : warning C4508: 'WinMain' : Funktion sollte einen Wert zurueckgeben; Ergebnistyp 'void' angenommen
Linker-Vorgang läuft...
LIBCD.lib(crt0.obj) : error LNK2001: Nichtaufgeloestes externes Symbol _main
Debug/verschieben.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.

verschieben.exe - 2 Fehler, 1 Warnung(en)


unteranderem natürlich, dass return 0; fehlt, wie GR-PA schon gesagt hat.


bei dem anderen:

C-/C++-Quelltext

1
2
3
4
5
6
7
#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmd,int nShowCmd)
{
  MoveFile("c:\\Programme\\avi1\\*.*", "c:\\Programme\\avi2");
  return 0; // <- Siehe hier...

} 


kommen folgende meldungen:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
Temporäre Dateien und Ausgabedateien für "verschieben - Win32 Debug" werden gelöscht.
--------------------Konfiguration: verschieben - Win32 Debug--------------------
Kompilierung läuft...
verschieben.cpp
Linker-Vorgang läuft...
LIBCD.lib(crt0.obj) : error LNK2001: Nichtaufgeloestes externes Symbol _main
Debug/verschieben.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.

verschieben.exe - 2 Fehler, 0 Warnung(en)


da es ein linkerfehler ist, hab ich wahrscheinlich irgendeine bibliothek nicht
eingebunden oder sowas ähnliches....

welche bibliotheken muss ich einbinden?
wahrscheinlich die windows-bibliothek, oder?
wo finde ich die?

vielen dank im voraus,

mfg gon

15

19.05.2008, 12:00

Zitat von »"unsigned long"«

Genau lesen (vorallem die remarks-Bereiche!) und für die richtigen Funktionen entscheiden.

Hast du gelesen?
Dort steht, kernel32.lib. Nehme an, die hast du bereits eingebunden.
Ansonsten sieht das für mich eher so aus, daß du ein Konsolen-Projekt verwendest und WinMain statt main angibst...

Gon

Treue Seele

  • »Gon« ist der Autor dieses Themas

Beiträge: 262

Wohnort: Nahe München

Beruf: Schüler (9. Klasse Gymnasium)

  • Private Nachricht senden

16

19.05.2008, 13:51

ok. danke, jetzt hab ich ein win32 projekt genommen und jetztz gehts mit dem kompileren........aber wenn ich die .exe dann ausführe, passiert nix. :?
die datein bleiben in avi1 und avi2 ist leer. :cry:

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

17

19.05.2008, 14:08

Bist du sicher, dass die Pfade stimmen?

EDIT:
Überprüf sonst mal den Rückgabewert und vlt. auch GetLastError.

18

19.05.2008, 14:17

Versuch es mal ohne die Platzhalter *.*, dann sollte es gehen.

Gon

Treue Seele

  • »Gon« ist der Autor dieses Themas

Beiträge: 262

Wohnort: Nahe München

Beruf: Schüler (9. Klasse Gymnasium)

  • Private Nachricht senden

19

20.05.2008, 14:49

komisch klappt auch nicht.......
versucht ihrs mal, vielleicht gehts nur bei mir nciht....
hier ist das ganze programm: (ich hab die zeile mit der funktion markiert)

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
#include <windows.h>

// Prototypen

//

LRESULT CALLBACK WindowProc (HWND hWnd, UINT message,
                             WPARAM wParam, LPARAM lParam);

HWND ErstelleHauptfenster (HINSTANCE hInst);
void ErstelleSteuerelemente (HWND hWnd, HINSTANCE hInst);

// IDs der Child-Fenster

//

#define ID_STATICTEXT1     4000
#define ID_STATICTEXT2     4001
#define ID_BTN_START       4002
#define ID_BTN_BEENDEN     4003

// Globale Variablen

//

HWND hText1;       // Handle für den statischen Text

HWND hText2;       // Handle für den statischen Text

HWND hUebernehmen; // Handle für Button "Verschieben Starten"

HWND hBeenden;     // Handle für Button "Beenden"


// Hauptprogramm

//

int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
                    LPSTR lpcmdline, int ncmdshow)
{
  HWND hWnd;   // Fenster-Handle

  MSG message; // Nachricht


  // Hauptfenster erstellen

  hWnd = ErstelleHauptfenster (hInst);

  // Prüfen, ob alles glatt ging

  if (hWnd == NULL)
    return (0);

  // Alle Steuerelemente erstellen

  ErstelleSteuerelemente (hWnd, hInst);

  // Der "Herzschlag" des Programms

  // Hier werden alle Nachrichten abgeholt,

  // übersetzt und weitergeleitet

  //

  while (GetMessage (&message, NULL, 0, 0) )
  {
    TranslateMessage (&message);
    DispatchMessage  (&message);

  }

  // Programm beenden

  return (int)(message.wParam);

} // WinMain



// Erstelle Hauptfenster

//

// Hauptfenster erstellen und Handle zurückliefern

//

HWND ErstelleHauptfenster (HINSTANCE hInst)
{
  HWND        hWnd;        // Fenster-Handle

  WNDCLASSEX  windowclass; // Nachricht


  // Der Klassenname des Fensters ist frei wählbar

  const char szClassName[] = "Verschieber3000";

  // Struktur mit gewünschten Eigenschaften füllen

  //


  // Größe der Struktur zwischenspeichern

  windowclass.cbSize = sizeof (WNDCLASSEX);

  // Fenster soll beim Verschieben neu gezeichnet werden

  windowclass.style = CS_HREDRAW | CS_VREDRAW;

  // Zeiger auf Callback-Funktion

  windowclass.lpfnWndProc = WindowProc;

  // Keine erweiterten Einstellungen

  windowclass.cbClsExtra = 0;
  windowclass.cbWndExtra = 0;

  // Instanz speichern

  windowclass.hInstance = hInst;

  // Icons und Cursor festlegen

  windowclass.hIcon   = LoadIcon (NULL, IDI_APPLICATION);
  windowclass.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
  windowclass.hCursor = LoadCursor (NULL, IDC_CROSS);

  // Hintergrundfarbe festlegen

  windowclass.hbrBackground = (HBRUSH)COLOR_BACKGROUND+2;

  // Ein Menü brauchen wir nicht

  windowclass.lpszMenuName = NULL;

  // Klassenname angeben

  windowclass.lpszClassName = szClassName;

  // Fensterklasse registrieren

  if (!RegisterClassEx (&windowclass) )
    return (NULL);

  // Das Fenster erzeugen

  hWnd = CreateWindowEx (NULL,
                         szClassName,
                         "Verschieber3000",
                         WS_OVERLAPPEDWINDOW | WS_VISIBLE,
                         CW_USEDEFAULT, CW_USEDEFAULT,
                         600, 600,
                         NULL,
                         NULL,
                         hInst,
                         NULL);

  // Fensterhandle zurückgeben

  return (hWnd);

} // ErstelleHauptfenster



// ErstelleSteuerelemente

//

// Alle Steuerelemente erstellen

//

void ErstelleSteuerelemente (HWND hWnd, HINSTANCE hInst)
{
  // Statischen Text als Child-Fenster erstellen

  //

  hText1 = CreateWindow ("STATIC",
                        "Willkommen beim Verschieber3000!",
                        WS_VISIBLE | WS_CHILD | ES_CENTER,
                        60, 20,
                        450, 50,
                        hWnd,
                        (HMENU)ID_STATICTEXT1,
                        hInst,
                        NULL);

  // Statischen Text als Child-Fenster erstellen

  //

  hText2 = CreateWindow ("STATIC",
                        "Er verschiebt ihre Dateien bequem von einem Ordner in einen anderen und lässt sich kinderleicht bedienen!",
                        WS_VISIBLE | WS_CHILD | ES_CENTER,
                        60, 60,
                        450, 50,
                        hWnd,
                        (HMENU)ID_STATICTEXT2,
                        hInst,
                        NULL);


  // "Starten"-Button als Child-Fenster erstellen

  //

  hUebernehmen = CreateWindow ("BUTTON",
                           "Verschieber3000 starten",
                           BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD,
                           115, 130,
                           350, 350,
                           hWnd,
                           (HMENU)ID_BTN_START,
                           hInst,
                           NULL);

  // "Beenden"-Button als Child-Fenster erstellen

  //

  hBeenden = CreateWindow ("BUTTON",
                           "Beenden",
                           BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD,
                           250, 505,
                           95, 40,
                           hWnd,
                           (HMENU)ID_BTN_BEENDEN,
                           hInst,
                           NULL);

} // ErstelleSteuerelemente



// Callback-Funktion zur Nachrichtenverarbeitung

//

LRESULT CALLBACK WindowProc (HWND hWnd, UINT message,
                             WPARAM wParam, LPARAM lParam)
{
  // Messages auswerten

  switch (message)
  {
    // Fenster schließen? (Auch Alt-F4)

    case WM_DESTROY:
    {
      // Nachricht zum Beenden schicken

      PostQuitMessage (0);
      return (0);

    }

    // Ab hier die Nachrichten unserer Child-Fenster bearbeiten

    case WM_COMMAND:
    {
      switch (wParam)
      {
        // Wurde "Verschieben starten" angeklickt?

        case ID_BTN_START:
        {
//---------------------------------------------------------------------------

// ---------------------------------------------------------------------------

          MoveFile("c:\\Programme\\avi1", "c:\\Programme\\avi2");  // <<<hier ist die zeile

// ---------------------------------------------------------------------------

//---------------------------------------------------------------------------


          return (0);

        }

        // Wurde "Beenden" angeklickt?

        case ID_BTN_BEENDEN:
        {
          int Resultat; // Rückgabewert der Messagebox


          // Messagebox für Sicherheitsabfrage

          Resultat = MessageBox (hWnd, "Wollen Sie den Verschieber3000 wirklich beenden?",
                                 "Verschieber3000 beenden",
                                 MB_YESNO | MB_ICONQUESTION);

          // Wurde "Ja" angeklickt?

          if (Resultat == IDYES)
          {
            // Ja, also Programm beenden

            PostQuitMessage (0);
            return (0);

          }

          // Nein, also ganz normal weiter

          return (0);

        }
      } break;
    } break;
  }

  // Die Nachricht wurde nicht von uns verarbeitet, also

  // von Windows verarbeiten lassen

  return (DefWindowProc (hWnd, message, wParam, lParam) );

} // WindowProc

SirForce

Alter Hase

Beiträge: 802

Wohnort: Süddeutschland

  • Private Nachricht senden

20

20.05.2008, 15:06

was ist avi1 denn für ein Datentyp?
Den solltest du schon benennen, allá "avi1.bat".
Nichts behindert so sehr die Entwicklung der Intelligenz wie ihre vollständige Abwesenheit.

Michail Genin

Werbeanzeige