Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Cyb3r Mini JLI'ler
Anmeldedatum: 19.01.2003 Beiträge: 7
Medaillen: Keine
|
Verfasst am: 19.01.2003, 20:04 Titel: Nichtaufgeloestes externes Symbol ?? |
|
|
VOID InitDD7()
{
LPDIRECTDRAW7 lpDD7 = NULL;
LPDIRECTDRAW lpSTDDD;
LPDIRECTDRAWSURFACE7 lpDDSPrimary = NULL;
DDSURFACEDESC2 ddsd;
LPDIRECTDRAWCLIPPER lpDDClipper = NULL;
DirectDrawCreateEx(NULL, (LPVOID*)&lpDD7, IID_IDirectDraw7, NULL);
DirectDrawCreate(NULL, &lpSTDDD, NULL);
lpSTDDD->QueryInterface(IID_IDirectDraw7, (LPVOID*)lpDD7);
lpSTDDD->Release();
lpDD7->SetCooperativeLevel(hWnd, DDSCL_NORMAL);
ZeroMemory(&ddsd, sizeof(ddsd));
ddsd.dwSize = sizeof(ddsd);
ddsd.dwFlags = DDSD_CAPS;
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE | DDSCAPS_VIDEOMEMORY;
lpDD7->CreateSurface(&ddsd, &lpDDSPrimary, NULL);
lpDD7->CreateClipper(NULL, &lpDDClipper, NULL);
lpDDClipper->SetHWnd(0, hWnd);
lpDDSPrimary->SetClipper(lpDDClipper);
}
-------------------------------------
Wintest.obj : error LNK2001: Nichtaufgeloestes externes Symbol _DirectDrawCreateEx@16
Wintest.obj : error LNK2001: Nichtaufgeloestes externes Symbol _IID_IDirectDraw7
Debug/Wintest.exe : fatal error LNK1120: 2 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.
Test.exe - 3 Fehler, 0 Warnung(en) |
|
Nach oben |
|
|
Compuholic Mini JLI'ler
Anmeldedatum: 15.10.2002 Beiträge: 25
Medaillen: Keine
|
Verfasst am: 19.01.2003, 21:06 Titel: |
|
|
Du mußt die Bibliotheken "ddraw.lib" und "dxguid.lib" in den Linker-Optionen angeben. |
|
Nach oben |
|
|
Cyb3r Mini JLI'ler
Anmeldedatum: 19.01.2003 Beiträge: 7
Medaillen: Keine
|
Verfasst am: 19.01.2003, 22:12 Titel: |
|
|
hab ich
aber ich hab trotzdem irgendwie den verdacht das was mit meinem DirectX SDK nich stimmt |
|
Nach oben |
|
|
Ranma JLI'ler
Anmeldedatum: 10.12.2002 Beiträge: 167 Wohnort: Cadolzburg Medaillen: Keine
|
Verfasst am: 20.01.2003, 13:15 Titel: |
|
|
hast die sdk bei vc++ denn ein gestellt
wenn nicht, dann tus siehe s.270 in chris buch _________________ "Deutsche Sprache schwere Sprache"
sprach der C++er |
|
Nach oben |
|
|
cstrike-zocker_69 Mini JLI'ler
Anmeldedatum: 16.01.2003 Beiträge: 10
Medaillen: Keine
|
Verfasst am: 20.01.2003, 13:40 Titel: |
|
|
dumusst des erst einstellen _________________ Ich bin der beste cstrike-zocker der welt!!! |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 20.01.2003, 14:16 Titel: |
|
|
Zum x-ten Mal: Du musst die Verzeichnisse für die Include- und Bibliotheksdateien ganz nach oben schieben in den Verzeichnislisten. Außerdem musst du für jedes Projekt die Bibliotheken noch einbinden(unter Projekteinstellungen). _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
Cyb3r Mini JLI'ler
Anmeldedatum: 19.01.2003 Beiträge: 7
Medaillen: Keine
|
Verfasst am: 20.01.2003, 15:11 Titel: |
|
|
jaja
das steht alles im buch und hab ich auch gemacht
aber ich überprüfe nochmal alles danke |
|
Nach oben |
|
|
Cyb3r Mini JLI'ler
Anmeldedatum: 19.01.2003 Beiträge: 7
Medaillen: Keine
|
Verfasst am: 20.01.2003, 19:42 Titel: |
|
|
so ich hab C++ und das DXSDK neu installiert und alles eingestellt,
Programm wird ohne fehler kompiliert. Beim Ausführen kommt folgende Fehlermeldung:
Die Anweisung in "0x0000000000" verweist auf Speicher in "0x0000000000". Der Vorgang "read" konnte nicht auf dem Speicher durchgeführt werden. |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 20.01.2003, 21:07 Titel: |
|
|
Code: |
VOID InitDD7()
{
LPDIRECTDRAW7 lpDD7 = NULL;
LPDIRECTDRAW lpSTDDD;
LPDIRECTDRAWSURFACE7 lpDDSPrimary = NULL;
DDSURFACEDESC2 ddsd;
LPDIRECTDRAWCLIPPER lpDDClipper = NULL;
DirectDrawCreateEx(NULL, (LPVOID*)&lpDD7, IID_IDirectDraw7, NULL);
DirectDrawCreate(NULL, &lpSTDDD, NULL);
lpSTDDD->QueryInterface(IID_IDirectDraw7, (LPVOID*)lpDD7);
lpSTDDD->Release();
lpDD7->SetCooperativeLevel(hWnd, DDSCL_NORMAL);
ZeroMemory(&ddsd, sizeof(ddsd));
ddsd.dwSize = sizeof(ddsd);
ddsd.dwFlags = DDSD_CAPS;
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE | DDSCAPS_VIDEOMEMORY;
lpDD7->CreateSurface(&ddsd, &lpDDSPrimary, NULL);
lpDD7->CreateClipper(NULL, &lpDDClipper, NULL);
lpDDClipper->SetHWnd(0, hWnd);
lpDDSPrimary->SetClipper(lpDDClipper);
} |
Das ist auch kein Wunder, dass hier wenig funktioniert. Du deklarierst (lokale) Variablen in einer Funktion und dann? Was machst du dann damit?
Man müßte man den Rest deines Codes sehen, schau dir doch nochmal an, was lokale Variablen sind und wie man sie benutzt.
Christian |
|
Nach oben |
|
|
Cyb3r Mini JLI'ler
Anmeldedatum: 19.01.2003 Beiträge: 7
Medaillen: Keine
|
Verfasst am: 21.01.2003, 12:17 Titel: |
|
|
Für den anfang hab ich überhauptnichts damit gemacht wollte nur DX initialisieren.
Die Variablen sind in meinem Programm nicht lokal das hab ich der einfachheit halber da reingeschrieben beim post |
|
Nach oben |
|
|
VerruecktesHuhn Super JLI'ler
Anmeldedatum: 30.07.2002 Beiträge: 492 Wohnort: Stuttgart Medaillen: Keine
|
Verfasst am: 22.01.2003, 18:47 Titel: |
|
|
Debug doch mal und poste den Code, der nicht funktioniert. |
|
Nach oben |
|
|
DerJJ Junior JLI'ler
Anmeldedatum: 24.12.2002 Beiträge: 84
Medaillen: Keine
|
Verfasst am: 22.01.2003, 20:32 Titel: |
|
|
Also ich hab ein ähnliches Problem, ich versuche nur mit GDI ein bild auszugeben und es kommt diese Fehlermeldung:
Code: |
Kompilierung läuft...
main.cpp
Linker-Vorgang läuft...
main.obj : error LNK2001: Nichtaufgeloestes externes Symbol "long __stdcall WindowFunc(struct HWND__ *,unsigned int,unsigned int,long)" (?WindowFunc@@YGJPAUHWND__@@IIJ@Z)
Debug/Test.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.
Test.exe - 2 Fehler, 0 Warnung(en) |
|
|
Nach oben |
|
|
Compuholic Mini JLI'ler
Anmeldedatum: 15.10.2002 Beiträge: 25
Medaillen: Keine
|
Verfasst am: 25.01.2003, 10:19 Titel: |
|
|
@DerJJ
Kann zwei Ursachen haben:
1. Entweder du verwendest eine Funktion, die in einer Bibliothek implementiert ist aber Du hast vergessen diese Bibliothekl bei den Linker-Optionen einzutragen.
2. Oder die Funktion ist in deinem Programm selbst implementiert aber Die Funktionsdefinition im Header weicht von der tatsächlichen ab. Passiert z.B. wenn die Parameter nicht übereinstimmen. (Beispiel MessageHandler: In der Funktion wird als 2. Parameter ein UINT-Datentyp erwartet aber in der Definition steht ein MSG-Datentyp).
[edit]
Hmm, soll WindowFunc der Message Handler bei deinem Programm sein? ich dachte immer die Parameter 3 und 4 sind DWORDs (genauer gesagt vom Typ WPARAM und LPARAM)
[/edit]
@Cyb3r:
So ein Fehler kommt i.d.R bei einem ungültigen Pointer vor. Lösung: Programm debuggen und nach jeden Schritt die Variablenwerte überprüfen. |
|
Nach oben |
|
|
|