View previous topic :: View next topic |
Author |
Message |
DeRatizators
Joined: 27 Apr 2006 Posts: 492
|
Posted: Sun Nov 04, 2007 8:08 pm Post subject: Nevēlama linkošanās pie citas DLL |
|
šodien pamanīju ka manis veidotie DLL kaut kāda veidā salinkojas viens pie otra. Nevaru saprast kāda velna pēc tas notiek, jo setingos itkā nekā tāda nav:
/Od /Oi /I "D:\Project\voh_132\VoHCode\gui" /I "D:\Project\voh_132\DB\include" /I "D:\Project\voh_132\VoHCode\voh" /I "D:\Project\voh_132\VoHCode\dbtools" /I "D:\Project\voh_132\VoHCode\datas\\" /I "D:\Project\voh_132\VoHCode\controllers" /I "D:\Project\voh_132\VoHCode\core" /I "..\..\..\EngineCode" /I "..\..\..\SDK\Windows\DirectX9SDK\Include" /I "..\..\..\SDK\Windows\EAX20SDK\Include" /I "..\..\..\SDK\Windows\OpenGLSDK\Include" /I "..\..\..\SDK\Windows\OpenALSDK\Include" /I "..\..\..\SDK\Windows\QuickTime6SDK\Include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL" /D "C4WINDOWS" /D "C4DEBUG" /D "C4MODULE" /D "VOHMASTER" /D "_VC80_UPGRADE=0x0700" /D "_WINDLL" /D "_MBCS" /GF /Gm /EHsc /MTd /GS- /arch:SSE /fp:fast /GR- /Fo"Debug\\" /Fd"Debug\vc80.pdb" /W3 /nologo /c /Wp64 /Zi /TP /errorReport:prompt
Kādam jokam kodā ir jābūt, lai divos projektos kompilējamie DLL sapinas kopā ? Tas kam redzami settingi sapinas ar citu manu DLL un palaižot bļau pēc tā :]
Protams ka faili projektos par 80% ir vieni un tie paši.
Agrāk nebiju manījis, jo bieži mainīju serveru lomas un tā bija sagadījies ka tie DLL vienmēr bija līdzās un viss strādāja ok. _________________ Any PANCAKE has to be long and thin and short and fat. Not to mention being an excellent insulator and a superb conductor. |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Sun Nov 04, 2007 8:18 pm Post subject: |
|
ja tie DLL'i salinkojas, tad nebūtu prātīgāk meklēt atbildi linkera uzstādījumos? _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
DeRatizators
Joined: 27 Apr 2006 Posts: 492
|
Posted: Sun Nov 04, 2007 8:21 pm Post subject: |
|
Godīgi sakot es vispār neizprotu izmantojot kādas telepātiskās spējas tas meklē to 2. DLL ar kuru saķerties (zin nosaukumu maita), wtf ?
Zin pat tad, kad es visam uztaisu Clean un nobildoju tikai 1 no abiem DLL + EXE...
Ahh tas "nevainīgais" DLL ir Master.dll , direktīva VOHMASTER viņa. Tas kuru meklē ir World.dll, direktīva VOHWORLD. Kā redzams settingos nekas neparādas no World daļas. _________________ Any PANCAKE has to be long and thin and short and fat. Not to mention being an excellent insulator and a superb conductor. |
|
Back to top |
|
|
DeRatizators
Joined: 27 Apr 2006 Posts: 492
|
Posted: Sun Nov 04, 2007 8:24 pm Post subject: |
|
Linkera:
/OUT:"..\..\..\Master.dll" /INCREMENTAL /NOLOGO /DLL /MANIFEST /MANIFESTFILE:"Debug\Master.dll.intermediate.manifest" /DEBUG /PDB:"d:\Project\voh_132\Master.pdb" /SUBSYSTEM:WINDOWS /MACHINE:X86 /ERRORREPORT:PROMPT kernel32.lib user32.lib kernel32.lib _________________ Any PANCAKE has to be long and thin and short and fat. Not to mention being an excellent insulator and a superb conductor. |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Sun Nov 04, 2007 8:25 pm Post subject: |
|
iepostē linkera uzstādījumus
EDIT: tagad ieraudzīju _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle
Last edited by snake5 on Sun Nov 04, 2007 8:43 pm; edited 1 time in total |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Sun Nov 04, 2007 8:28 pm Post subject: |
|
DLL failus pielinkot, cik zinu, var divos veidos:
1) uzstādot linkera opcijās, lai linko klāt .lib failu, kurā iekšā ir norādīts dll fails pie kura jālinkojas.
2) lietojot #pragma comment(lib, "fails.lib") direktīvu iekš jebkura .cpp/.h faila.
Ja nezini kas un kā, tad apskati, kādu tieši funkciju/klasi/mainīgo tas Master.dll fails importē no World.dll (cik sapratu tā nav jābūt) un tad parādi rindiņu no sources, kurā šis simbols (funkcija vai mainīgais) tiek deklarēts. Tad varēšu pateikt, ko sīkāk. |
|
Back to top |
|
|
DeRatizators
Joined: 27 Apr 2006 Posts: 492
|
Posted: Sun Nov 04, 2007 8:39 pm Post subject: |
|
bubu wrote: | DLL failus pielinkot, cik zinu, var divos veidos:
1) uzstādot linkera opcijās, lai linko klāt .lib failu, kurā iekšā ir norādīts dll fails pie kura jālinkojas.
2) lietojot #pragma comment(lib, "fails.lib") direktīvu iekš jebkura .cpp/.h faila.
Ja nezini kas un kā, tad apskati, kādu tieši funkciju/klasi/mainīgo tas Master.dll fails importē no World.dll (cik sapratu tā nav jābūt) un tad parādi rindiņu no sources, kurā šis simbols (funkcija vai mainīgais) tiek deklarēts. Tad varēšu pateikt, ko sīkāk. |
Ja es izmantotu kautkur papildus vienu vai otru, tad toč zinātu :)
Problēma tāda, ka man nesaka, ko tas cenšas izsaukt, citādi tas jau būtu +/- skaidrs. Man vienkārši saka, ka tāds un tāds DLL nav atrast un iet tālāk (kaut kur dzinī tiek apstrādāts).
Ok, vēlāk paskatīšos, kas sanāk tanī DLL. Pagaidām nav jau problēmas iekopēt 2 dll mapē
Domāju, ka vainīgs ir kaut kas dīvains kodā. _________________ Any PANCAKE has to be long and thin and short and fat. Not to mention being an excellent insulator and a superb conductor. |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Sun Nov 04, 2007 8:48 pm Post subject: |
|
vienīgais, ko pašlaik varu ieteikt - izmanto meklēšanu, pameklē pēc #pragma comment(lib,"World.lib") (ja tev world.dll pielinko..)
Quote: | Ja nezini kas un kā, tad apskati, kādu tieši funkciju/klasi/mainīgo tas Master.dll fails importē no World.dll |
Quote: | Problēma tāda, ka man nesaka, ko tas cenšas izsaukt, citādi tas jau būtu +/- skaidrs. Man vienkārši saka, ka tāds un tāds DLL nav atrast un iet tālāk (kaut kur dzinī tiek apstrādāts). |
nu paņem šito
http://www.dependencywalker.com/
un atver vainīgo dll, tas visu parādīs - kas tiek importēts! _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Sun Nov 04, 2007 9:24 pm Post subject: |
|
Nav nekas jāņem. Studijai tāds "Dependency Walker" tūlis nāk līdzi instalācijai.
Un XXX.lib fails ne vienmēr nozīmē to, ka tiks linkots klāt pie XXX.dll faila. XXX.lib var linkot pie YYY.dll faila un pie reizes arī pie ZZZ.dll faila. Nosaukumam nav nekādas nozīmes.
Last edited by bubu on Sun Nov 04, 2007 9:28 pm; edited 1 time in total |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Sun Nov 04, 2007 9:27 pm Post subject: |
|
ja?
nu anyway, es to ieinstalēju un tad piesaistu pie dll'iem, lai atver uzreiz...
pie exēm gan nemāku.. _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
Storm
Joined: 11 Apr 2006 Posts: 742
|
Posted: Sun Nov 04, 2007 10:14 pm Post subject: |
|
Svariigs likums - "optimize only when its necessary" Tavaa gadiijumaa - vai tev ir veerts skiest laiku lai mekleetu kaadu "kljuudu" kuru labojot Tu reaali redzamu labumu neguusi, it seviski ja nesanaak to atklaat ar standarta paarbaudeem? Tai pat laikaa var izdariit arii kko lietderiigu. |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Sun Nov 04, 2007 10:24 pm Post subject: |
|
Es jau nu šo nesauktu par optimizēšanu. Šī ir vienkārši līka projekta konfigurācija :) Vēlāk droši vien pats sev problēmas radītu, ja vilktu līdzi nevajdzīgus dependencijus uz dll failiem. |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Sun Nov 04, 2007 10:27 pm Post subject: |
|
Storm wrote: | Svariigs likums - "optimize only when its necessary" Tavaa gadiijumaa - vai tev ir veerts skiest laiku lai mekleetu kaadu "kljuudu" kuru labojot Tu reaali redzamu labumu neguusi, it seviski ja nesanaak to atklaat ar standarta paarbaudeem? Tai pat laikaa var izdariit arii kko lietderiigu. |
1. kā tu zini, ka labumu neiegūs?
2. labāk ir visas kļūdas izlabot, vieglāk būs vēlāk kodēt, būs zināms, ka tādā un arī šādā vietā kodā kļūdu nav, tas ievērojami atvieglos turpmāko kļūdu meklēšanu! _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
Storm
Joined: 11 Apr 2006 Posts: 742
|
Posted: Sun Nov 04, 2007 10:29 pm Post subject: |
|
"optimize only when its necessary" - tas jau buus tas "veelaak probleemas radiis varbuut" taatad JA radiis probleemas tad arii meklee savu konfiguraacijas kljuudu. |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Sun Nov 04, 2007 10:35 pm Post subject: |
|
Storm - manuprāt tu jauc divas lietas: koda ātrdarbību (optimizēšanu) ar koda strādāšanu (korektumu, kļūdu neesamību). Takš neviens nerakstīs kodu kautkā sazin kā, un kļūdas meklēs pēc tam :) Normāli cilvēki raksta strādājošu kodu, t.i cenšās neielaist kļūdas. Un tur ar optimizāciju nav sakara. Tikai tad, kad kods ir strādājošs (un bez kļūdām), tad var ķerties klāt pie optimizēšanas. Vismaz tā es uzskatu. |
|
Back to top |
|
|
|