Problém DX a Cpp – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Problém DX a Cpp – C / C++ – Fórum – Programujte.comProblém DX a Cpp – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
Scrash0
Newbie
12. 9. 2011   #1
-
0
-

Zdravim, potřeboval bych poradit ohledně pár errorů.

Mám nainstalované MSVS 2010, DX SDK 2010 June a při kompilaci mi to vyhazuje tyto errory:

1>CApplication.obj : error LNK2019: unresolved external symbol "public: void __thiscall CWindow::UpdateFrame(void)" (?UpdateFrame@CWindow@@QAEXXZ) referenced in function "public: void __thiscall CApplication::MainLoop(void)" (?MainLoop@CApplication@@QAEXXZ)
1>CWindow.obj : error LNK2019: unresolved external symbol _Direct3DCreate9@4 referenced in function "public: bool __thiscall CWindow::Initialize(void)" (?Initialize@CWindow@@QAE_NXZ)
1>C:\Users\Scrash\documents\visual studio 2010\Projects\DirectX\Debug\DirectX.exe : fatal error LNK1120: 2 unresolved externals

Hledal jsem všude možně, ale nic mi nepomohlo, četl jsem, že to může být i špatným nastavením knihoven, ale to si nemyslím, že by to byl můj problém, jelikož jsem je nstavoval podle návodu, kde lidé psali že jim to podle něj funguje.

Budu rád za každou radu.

Nahlásit jako SPAM
IP: 85.163.16.–
KIIV
~ Moderátor
+43
God of flame
12. 9. 2011   #2
-
0
-

#1 Scrash
to ze mas knihovny nainstalovany nic neznamena - musis je taky prilinkovat pri kompilaci - to je nastaveni pro kazdej projekt zvlaste

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Scrash0
Newbie
12. 9. 2011   #3
-
0
-

#2 KIIV

Ano, toto vím. knihovny mám přilinkované, přímo přes nastavení projektu, a ty se načítají.

Potvrzení: když knihovny přlinkuju v nastavení a zároveň pomocí #pragma comment (lib, "dxguid.lib") a #pragma comment (lib, "d3d9.lib") tak to nehlásí chybu, ale pokud přilinkuji neexistující soubor, třeba na #pragma comment (lib, "dxguidBLABLA.lib"), tak to hlási, že knihovna nebyla nalezena.

Z toho vyplývá, že oba způsoby fungují.

Nahlásit jako SPAM
IP: 85.163.16.–
Štěpán
~ Anonymní uživatel
126 příspěvků
12. 9. 2011   #4
-
0
-

Je to už přes 5 let, co jsem naposledy držel v ruce Direct 3D, ale mám pocit, že těch lib knihoven tam bylo víc než jen d3d9.lib. Něco s xkem, d3dx9.lib nebo něco takového...

Nahlásit jako SPAM
IP: 88.100.48.–
yaqwsx+9
Posthunter
12. 9. 2011   #5
-
+1
-
Zajímavé

Předpokládám, že se snažíš zkompilovat příklady ke knize DirectX - začínáme programovat. Používáš projekt, který byl již založený někým cizím (tzn. jen jsi ho rozbalil z archívu a otevřel) nebo zakládáš nový?

Je totiž divné, že se ti nechce slinkovat i tvá metoda třídy UpdateFrame(). Mrkni do c souboru (nikoliv do hlavičky), zda-li není v názvu UpdateFrame překlep. To je tak jediné, co mě napadá...

Nahlásit jako SPAM
IP: 85.160.79.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
Štěpán
~ Anonymní uživatel
126 příspěvků
12. 9. 2011   #6
-
0
-

A možná se taky jen pletu, že to bylo #include <d3dx9.h>...   fakt teď nevím, jestli to máš podle nějakého návodu, tak to budeš muset počkat na radu někoho kvalifikovaněšího.

Nahlásit jako SPAM
IP: 88.100.48.–
Scrash0
Newbie
12. 9. 2011   #7
-
0
-

#6 Štěpán
jak knihovna, tak i includ má totožný název d3d9.

#5 yaqwsx
Založil jsem nový projekt, jedu podle knížky, rád bych se někdy mrknul i do tich příkladů, ale není je kde stáhnout.  Chybu s UpdateFrame jsem vyřešil, zapomněl jsem tu metodu nadefinovat  , ale problém s druhou chybou už nevím jak vyřešit.

Nahlásit jako SPAM
IP: 85.163.16.–
Míša
~ Anonymní uživatel
106 příspěvků
12. 9. 2011   #8
-
0
-

Project -> Properties ---> Linker -> Input - položka Additional Dependencies (doplnit d3d9.lib;d3dx9.lib)

Project -> Properties ---> Linker -> General - položka Additional Library Directories (doplnit cestu ke knihovnám, např. C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x86)

Nahlásit jako SPAM
IP: 88.102.27.–
Scrash0
Newbie
12. 9. 2011   #9
-
0
-

#8 Míša
Ano, toto jsem udělal, ale mám 64bit Win, takže místo x86 jsem nastavil cestu pro x64.

+ ještě jsem přilinkoval d3dx9.lib

A pořád nic.

Nahlásit jako SPAM
IP: 85.163.16.–
Řešení
Míša
~ Anonymní uživatel
106 příspěvků
12. 9. 2011   #10
-
+1
-
Zajímavé
Vyřešeno Nejlepší odpověď

Taky mám 64bit ale přilinkovávám x86, jelikož se to kompiluje jako 32bit a předpokládám, že to taky kompiluješ jako 32bit...

Nahlásit jako SPAM
IP: 88.102.27.–
Scrash0
Newbie
12. 9. 2011   #11
-
0
-

#10 Míša
Aha, toto jsem nevěděl. V návodu nastavoval cestu k x64, tak jsem myslel že mi to pod 64bit Win také poběži.

Toto můj problém definitivně vyřešilo. Děkuji ti za rady.

Nahlásit jako SPAM
IP: 85.163.16.–
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, 55 hostů

Podobná vlákna

Zkompilovat *.h *.cpp *cpp dohromady — založil -------------

Cpp a wokna — založil .

Exe to cpp — založil noname

EXE to CPP — založil Bengo

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ý