Problema cu ntdll.dll

Acest forum este dedicat intrebarilor de Windows API, folosing C/C++
Post Reply
User avatar
adi0149
Membru
Membru
Posts: 65
Joined: 04 Aug 2009, 16:42
Judet: Bucureşti
Location: Bucuresti
Contact:

Problema cu ntdll.dll

Post by adi0149 » 10 Feb 2010, 23:56

Salut!
Am incercat sa fac un setup la un programel folosind "Setup Project" din file->add->new project in VS2008 si am observat ca daca pun programelul pe un computer care are alta varianta de windows decat a mea (win 7), programul se instaleaza, dar cand incerc sa-l rulez imi da eroarea: "The procedure entry point WinSqmAddToStreamEx could not be located in the dynamic link library ntdll.dll".
Am cautat pe net dar nu m-am lamurit care-i treaba. Ceva idei?
Mersi.



User avatar
cristianamarie
Membru++
Membru++
Posts: 480
Joined: 12 Mar 2009, 18:47
Judet: Iaşi
Location: Iasi

Re: Problema cu ntdll.dll

Post by cristianamarie » 11 Feb 2010, 10:38

E posibil sa iti fi pus o dependinta la un dll system si sa fi incercat sa il puna si pe el.
Incearca sa ii dai exclude si regenereaza setup-ul.
Attachments
setup-vdproj.PNG
setup-vdproj.PNG (37.14 KiB) Viewed 9681 times
Nuclear launch detected

User avatar
MrSmersh
Microsoft MVP
Microsoft MVP
Posts: 289
Joined: 20 Jul 2007, 10:18
Location: Timisoara
Contact:

Re: Problema cu ntdll.dll

Post by MrSmersh » 11 Feb 2010, 13:15

Vezi cu depends daca chiar folosesti metoda aia si cine o foloseste, poate alta dependinta il vrea si sa vezi care sint optiunile atunci

User avatar
adi0149
Membru
Membru
Posts: 65
Joined: 04 Aug 2009, 16:42
Judet: Bucureşti
Location: Bucuresti
Contact:

Re: Problema cu ntdll.dll

Post by adi0149 » 11 Feb 2010, 17:00

Mersi, cristian, se pare ca aia era. El incerca saracu sa imi spuna sa exclud fisierele alea de sistem (imi dadea warning-uri), dar ca de obicei, eroarea a fost intre scaun si tastatura. eu le ignoram ca doar si le pusese singur acolo cand a creat projectu de install.
thx :)

User avatar
cristianamarie
Membru++
Membru++
Posts: 480
Joined: 12 Mar 2009, 18:47
Judet: Iaşi
Location: Iasi

Re: Problema cu ntdll.dll

Post by cristianamarie » 11 Feb 2010, 17:47

Da, nu stiu de ce isi pierde exclude list si *sometimes* le pune iar...
Nuclear launch detected

User avatar
adi0149
Membru
Membru
Posts: 65
Joined: 04 Aug 2009, 16:42
Judet: Bucureşti
Location: Bucuresti
Contact:

Re: Problema cu ntdll.dll

Post by adi0149 » 11 Feb 2010, 17:53

Inca una... pot sa il pun sa ruleze un executabil din folderul in care am instalat dupa ce a terminat de instalat projectu? (scuze ca pun intrebari stupide)

Am gasit o chestie in "properties" la executabilu respectiv -> "condition", care pare sa fie ceea ce ma intereseaza, dar habar n-am cum as putea sa formulez conditia. Mai exact, vreau sa ruleze AgeiaSystemSoftware, deci o buna conditie ar fi sa verifice daca e deja instalat, dar n-am idee cum s-ar face treaba asta.


EDIT:

Sunt pe-aproape... Am pus in "Launch Conditions" un file search, sa vada daca e Ageia instalata sau nu, si am pus sa ruleze installu de la ageia (pe care l-am inclus in pachet) daca nu se indeplineste conditia din search. Am facut asta in "Custom Actions" in folderul "Install". Treaba merge... partial:
1. rulez setupul
2. next, next...
3. se instaleaza
4. la un moment dat se opreste din instalat si ruleaza installu de la ageia
5. aici vine problema: ageia nu se instaleaza pentru ca imi zice ca nu se poate instala in acelasi timp cu alt install
6. dau cancel la ageia
7. programu se termina de instalat iar ageia ramane neinstalata. :(

Acu... as vrea sa pun sa ruleze ageia inainte sau dupa instalarea programului, dar nu stiu cum sa fac treaba asta.

User avatar
cristianamarie
Membru++
Membru++
Posts: 480
Joined: 12 Mar 2009, 18:47
Judet: Iaşi
Location: Iasi

Re: Problema cu ntdll.dll

Post by cristianamarie » 11 Feb 2010, 21:58

Trebuie sa faci un setup bootstrap, care contine/ruleaza celelalte setup-uri.
Ca sa verifici existenta unui installed product, MsiGetProductInfo/MsiGetProductInfoEx.

Bootstrapper-ul lanseaza executabilele/setup-urile; ShellExecuteExW cu SEE_MASK_NOCLOSEPROCESS ca sa poti face WaitForSingleObject pe setup, dupa ce s-a terminat un setup pornesti pe al doilea etc.
Poti sa adaugi setup-urile ca resurse custom in bootstrapper, care le extrage din el insusi intr-o locatie temporara pe toate, le lanseaza pe rind, face ce trebuie, si apoi sterge ce a pus in locatia temporara.

Daca ai nevoie sa faci o tranzactie, as cerceta pe la MsiBeginTransaction/MsiJoinTransaction. Nu le-am folosit niciodata, deci... good luck.
Sau creezi o coada cu setup API (SetupOpenFileQueue, SetupInitDefaultQueueCallback etc) si folosesti facilitatile de acolo.
E de cercetat, dar cai sint.
Nuclear launch detected

User avatar
adi0149
Membru
Membru
Posts: 65
Joined: 04 Aug 2009, 16:42
Judet: Bucureşti
Location: Bucuresti
Contact:

Re: Problema cu ntdll.dll

Post by adi0149 » 11 Feb 2010, 23:05

wow... pare foarte complicat si ar fi trebuit sa fie gata in seara asta :D
sa-nteleg ca nu se poate din interfata "Launch conditions" sau "Custom Actions"?

User avatar
cristianamarie
Membru++
Membru++
Posts: 480
Joined: 12 Mar 2009, 18:47
Judet: Iaşi
Location: Iasi

Re: Problema cu ntdll.dll

Post by cristianamarie » 12 Feb 2010, 08:25

5. aici vine problema: ageia nu se instaleaza pentru ca imi zice ca nu se poate instala in acelasi timp cu alt install
Pai eu zic ca e self explanatory. Ai main setup care nu s-a terminat, si tu pornesti altul.
Nu cred ca e asa greu sa faci un exe care ruleaza un doua msi-uri. Si eu am avut problema asta si am terminat in citeva ore.
Nuclear launch detected

User avatar
MrSmersh
Microsoft MVP
Microsoft MVP
Posts: 289
Joined: 20 Jul 2007, 10:18
Location: Timisoara
Contact:

Re: Problema cu ntdll.dll

Post by MrSmersh » 12 Feb 2010, 14:20

adi0149 wrote:wow... pare foarte complicat si ar fi trebuit sa fie gata in seara asta :D
sa-nteleg ca nu se poate din interfata "Launch conditions" sau "Custom Actions"?
Din interfata nu, Visual e tool extrem de limitat de facut instalari. Cascading msi se poate, vrei free si de viitor vezi Wix depinde de proiect poate merge si o seara :biggrin: . Cu alea pe bani e click click etc
Un aspect de urmarit, in unele cazuri nu e recomandat instalarea automata ci pus userul sa faca asta. .Niet e un exemplu, in good practice se spune nu automat zii user sa il puna.
Cam totul depinde proiect, daca se vrea deployment automat trebuie sa fie msi (si poti da separat lista de ce trebuie), daca se vrea certificare produs si alte variabile. Normal exista cazul sa mearga nu conteaza cum :biggrin:

User avatar
adi0149
Membru
Membru
Posts: 65
Joined: 04 Aug 2009, 16:42
Judet: Bucureşti
Location: Bucuresti
Contact:

Re: Problema cu ntdll.dll

Post by adi0149 » 12 Feb 2010, 19:34

Ok... tinand cont ca asta ar fi trebuit sa-l predau ieri, iar setup-ul era una din cele mai mici probleme ale mele, am decis sa anunt utilizatorul in timpul instalarii ca daca vrea sa-i mearga tre sa aibe ageia instalat si nu-i nevoie sa stea sa-l caute ca e pus kitu in folderul in care se instaleaza programul. tot ce tre sa faca e sa se duca acolo si sa instaleze ageia dupa ce a instalat programu. Asa ca trec la alte probleme mai importante si poate poate pana maine dimineata e gata... intr-o forma cat-de-cat.
Mersi pentru sfaturi.

Post Reply