[ _deran_ @ 08.04.2016. 11:27 ] @
Imam COM+ aplikaciju instaliranu koja radi duže vreme na WinXP, ali ne mogu da je instaliram na Windows 7. Pri odabiru DLL-a prozor se jednostavno zamrzne i stoji dok ne ubijem Rundll32.exe. Probao sam na Win 7 32-bit, 64-bit, Windows Server 2012, pa Delphi 7, Delphi 2006 i Delphi XE5 (64 i 32). Administrator sam na mašinama. Probao sam da kreiram praznu komponentu pa da idem korak po korak i ustanovio da se zaglavi kod ADO-a.
Znači, prazan projekat koji je generisao wizard kad se napravi DLL on prođe, ali čim dodam kreiranje TADOConnection komponente ono zaglavi pri registrovanju. Kreiranje TADOQuery prođe ali tada stane na setovanju connection string-a. Isti kod prođe kada se potera iz "normalne" aplikacije sa formom (nije DLL). Probao sam da exportujem komponentu na windowsu gde mi radi, dobijem instalacioni msi ali isto zaglavi pri instalaciji na Windows 7. Nije mi opcija da pređem sa COM+ na nešto drugo :(


Ima li neko sličnih problema? Ili još bolje, ima li neko ideju kako rešim moj problem? :)
[ savkic @ 08.04.2016. 12:06 ] @
Konkretno ne mogu pomoci ali mozda ideju ako pomogne. Nisam iz poruke shvatio da li si probao i da kompajliras dll kao 64bitni?
Ako shvatam, ADO radi iz obicne aplikacije, mozda treba ADO da se registruje nesto posebno za com. BTW da li radi ako napravis obican dll (ne COM)?
[ _deran_ @ 08.04.2016. 12:58 ] @
Probao sam da kompajliram i kao 64bit i 32bit. Neće da radi ni 32bit DLL na 32bit Windows 7. Na Windows XP radi.
Sad sam probao sa ADO u običnom DLL-u, to radi.
Ne znam da li treba nešto posebno da se registruje u windowsu za ADO ako je iz COM+, nisam našao ništa tako na internetu... Za Windows XP ne treba.
[ _deran_ @ 12.04.2016. 10:07 ] @
Da li je neko uspeo da radi debug ovakve aplikacije? Probao sam da stavim u parametar /ProcessID={GUID} i host aplikaciju ali ne počne mi debug, samo kao da se startuje dllhost i izađe. Probao sam i da stavim debugger (kod COM+ komponente, C:\Program Files (x86)\Borland\Delphi7\Bin\bordbg70.exe C:\Windows\SysWOW64\dllhost.exe /ProcessID:{3D9D1D17-CE40-4797-A581-5E2692C63FED} ) ali tad izbaci poruku pri pokretanju COM komponente.
[ savkic @ 12.04.2016. 10:22 ] @
> Da li je neko uspeo da radi debug ovakve aplikacije?

Konkretno com nisam, ali mislim da jesam davno debug shell ekstenzije dlla, što treba da bude slično. Ne sećam se sad postupka, za tvoj slučaj probaj da staviš da je host explorer (ili da se nakačiš na explorer) ili da je host test app iz koje pozivaš tvoj dll.
[ _deran_ @ 12.04.2016. 10:55 ] @
DLL je COM+ aplikacija, poziva je windows sa dllhost.exe (32bit iz syswow64 foldera). Registrovan je Controla Panel\Administrative Tools\Component Services\COM+ Applications
[ _deran_ @ 09.05.2016. 11:37 ] @
Huh....
Otkrio sam šta je. Ne sme se u inicijalizaciji DLL-a koristiti COM objekat (npr. ADO). A ja sam upravo to radio. Na XP-u je to išlo ali nije po preporuci ni tada bilo, našao sam negde na microsoft-ovom sajtu. Konekcija prebačena da se radi kasnije i rešen problem.