[XP Embedded] ActiveX object can't create....

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • pkouwer
  • Registratie: November 2001
  • Laatst online: 22-07 13:16
Ik heb een eenvoudige applicatie gemaakt (VB6) om later als shell te laten lopen in een Windows XP Embedded systeem. Het maken van de Shell, laten starten van de applicatie werkt, echter als ik op een knop klik in de applicatie gaat het mis:

Achter de knop zit de code om een database te linken met de data-link eigenschappen (maakt een udl-bestand) welke ik verder in de applicatie gebruik. Hierop krijg ik de melding " activeX object can't create object.

ik heb al gekeken met depends.exe om te zie welke dependencies ik moet koppelen, maar wordt hier niet wijzer van. De enige die ik zou moeten koppelen is msvbvm60.dll.

De omgeving waarin ik deze melding krijg is Windows XP Embedded (met en zonder gebruik van VMWARE).

heeft iemand een idee hoe ik dit kan oplossen.

Acties:
  • 0 Henk 'm!

  • CoolGamer
  • Registratie: Mei 2005
  • Laatst online: 06-09 16:59

CoolGamer

What is it? Dragons?

Staat er niet in het applicatielogboek van Windows welk object niet gecreëerd kon worden? Dat is een plek waar ik ook eerst even zou kijken.

ActiveX objecten hoef je niet te linken tijdens het compileren, geloof ik, waardoor hij er ook niet bij zal staan bij depends.exe.

¸.·´¯`·.¸.·´¯`·.¸><(((º>¸.·´¯`·.¸><(((º>¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸<º)))><¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸


Acties:
  • 0 Henk 'm!

  • jmzeeman
  • Registratie: April 2007
  • Laatst online: 08-09 07:36
Depends.exe geeft COM dependencies inderdaad niet weer als je hem gewoon op een exe draait. Maar als je vervolgens gaat profilen (F7 geloof ik) en dan even door je app heen klikt dan heb je een goede kans dat je de benodigde DLL's wel ziet. Dat moet je dan natuurlij wel doen op je dev machine waar je applicatie wel werkt.

Ik gok dat je in je Windows embedded image je database objecten (ADO) mist.

Acties:
  • 0 Henk 'm!

  • Coltrui
  • Registratie: Maart 2001
  • Niet online

Coltrui

iddqd

pkouwer schreef op zondag 07 februari 2010 @ 21:48:
ik heb al gekeken met depends.exe om te zie welke dependencies ik moet koppelen, maar wordt hier niet wijzer van. De enige die ik zou moeten koppelen is msvbvm60.dll.
msjetoledb40.dll zal je ook nodig hebben om een ADOconnectie te kunnen creëren. :)

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Coltrui schreef op dinsdag 09 februari 2010 @ 15:55:
[...]


msjetoledb40.dll zal je ook nodig hebben om een ADOconnectie te kunnen creëren. :)
Just out of curiosity: Kun je dan niet beter een MDAC installatie uitvoeren?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Sven_Vdb
  • Registratie: Januari 2006
  • Laatst online: 02-09 09:14
Ik weet niet of je msvbvm60.dll kan registreren? Kweet zelfs niet of die in system32 map ofzo zit.
Maar je moet die dll eens proberen te registreren.

Acties:
  • 0 Henk 'm!

  • Coltrui
  • Registratie: Maart 2001
  • Niet online

Coltrui

iddqd

RobIII schreef op dinsdag 09 februari 2010 @ 16:01:
[...]

Just out of curiosity: Kun je dan niet beter een MDAC installatie uitvoeren?
Van jouw linkje: Supported Operating Systems: Windows 2000; Windows 98; Windows ME; Windows NT; Windows XP :)

MDAC setup werkte niet in XP E zonder SP's. Ik geloof dat vanaf XP E SP2 het wel "werkt" maar ik ondervond daarbij nogal wat problemen. Het bestand msjetoledb40.dll (van een gewone XP te kopiëren) registreren werkte wel.

offtopic:
Overigens beperkt mijn ervaring met XP E zich tot een drietal produkten, waarbij we de connectie met de database via een hogere laag geregeld hebben, wegens te veel concurrent clients. Licenties en zo...

Acties:
  • 0 Henk 'm!

  • pkouwer
  • Registratie: November 2001
  • Laatst online: 22-07 13:16
heb nog geen tijd gehad om het te proberen, maar met een oude versie van de eigen software (voor een nieuwe compilatie) lukte het niet het programma te starten. na registratie van msvbvm60.dll werkte dit nl. wel.

ik kom hier even op terug...

Acties:
  • 0 Henk 'm!

  • pkouwer
  • Registratie: November 2001
  • Laatst online: 22-07 13:16
hieronder en deel van de output, nadat ik op de "beruchte" knop heb gdrukt.

00:00:24.070: LoadLibraryExW("C:\Program Files\Common Files\System\Ole DB\oledb32.dll", 0x00000000, LOAD_WITH_ALTERED_SEARCH_PATH) called from "OLE32.DLL" at address 0x75F3B34F.
00:00:24.070: Loaded "OLEDB32.DLL" at address 0x6CE90000. Successfully hooked module.
00:00:24.086: Loaded "MSDART.DLL" at address 0x71860000. Successfully hooked module.
00:00:24.102: Loaded "SHELL32.DLL" at address 0x762D0000. Successfully hooked module.
00:00:24.102: Loaded "COMCTL32.DLL" at address 0x72AC0000. Successfully hooked module.
00:00:24.117: Loaded "COMDLG32.DLL" at address 0x77100000. Successfully hooked module.
00:00:24.117: Loaded "WININET.DLL" at address 0x76ED0000. Successfully hooked module.
00:00:24.117: Loaded "NORMALIZ.DLL" at address 0x75DD0000. Successfully hooked module.
00:00:24.133: Loaded "URLMON.DLL" at address 0x76FC0000. Successfully hooked module.
00:00:24.133: Loaded "IERTUTIL.DLL" at address 0x77340000. Successfully hooked module.
00:00:24.133: DllMain(0x71860000, DLL_PROCESS_ATTACH, 0x00000000) in "MSDART.DLL" called.
00:00:24.148: GetProcAddress(0x77260000 [KERNEL32.DLL], "TryEnterCriticalSection") called from "MSDART.DLL" at address 0x7186BC72 and returned 0x777280E3.
00:00:24.148: GetProcAddress(0x77260000 [KERNEL32.DLL], "SetCriticalSectionSpinCount") called from "MSDART.DLL" at address 0x7186BC7F and returned 0x776F00AE.
00:00:24.148: GetProcAddress(0x77260000 [KERNEL32.DLL], "SwitchToThread") called from "MSDART.DLL" at address 0x7186BE8C and returned 0x7726E875.
00:00:24.148: GetProcAddress(0x77260000 [KERNEL32.DLL], "TryEnterCriticalSection") called from "MSDART.DLL" at address 0x7186BE99 and returned 0x777280E3.
00:00:24.148: GetProcAddress(0x77260000 [KERNEL32.DLL], "SetCriticalSectionSpinCount") called from "MSDART.DLL" at address 0x7186BEA6 and returned 0x776F00AE.
00:00:24.148: DllMain(0x71860000, DLL_PROCESS_ATTACH, 0x00000000) in "MSDART.DLL" returned 1 (0x1).
00:00:24.148: DllMain(0x762D0000, DLL_PROCESS_ATTACH, 0x00000000) in "SHELL32.DLL" called.
00:00:24.148: LoadLibraryW("comctl32.dll") called from "SHELL32.DLL" at address 0x76369993.
00:00:24.148: LoadLibraryW("comctl32.dll") returned 0x74AC0000.
00:00:24.148: LoadLibraryW("comctl32.dll") called from "SHELL32.DLL" at address 0x76369993.
00:00:24.148: LoadLibraryW("comctl32.dll") returned 0x74AC0000.
00:00:24.148: GetProcAddress(0x74AC0000 [COMCTL32.DLL], 0x00000148) called from "SHELL32.DLL" at address 0x763674D1 and returned 0x74AED2B3.
00:00:24.148: DllMain(0x762D0000, DLL_PROCESS_ATTACH, 0x00000000) in "SHELL32.DLL" returned 1 (0x1).
00:00:24.148: DllMain(0x72AC0000, DLL_PROCESS_ATTACH, 0x00000000) in "COMCTL32.DLL" called.
00:00:24.148: GetProcAddress(0x77260000 [KERNEL32.DLL], "FlsAlloc") called from "COMCTL32.DLL" at address 0x72AC506E and returned 0x77284C08.
00:00:24.148: GetProcAddress(0x77260000 [KERNEL32.DLL], "FlsGetValue") called from "COMCTL32.DLL" at address 0x72AC507B and returned 0x772AC714.
00:00:24.148: GetProcAddress(0x77260000 [KERNEL32.DLL], "FlsSetValue") called from "COMCTL32.DLL" at address 0x72AC5088 and returned 0x772A44B9.
00:00:24.148: GetProcAddress(0x77260000 [KERNEL32.DLL], "FlsFree") called from "COMCTL32.DLL" at address 0x72AC5095 and returned 0x7728F3C8.
00:00:24.148: GetProcAddress(0x77260000 [KERNEL32.DLL], "EncodePointer") called from "COMCTL32.DLL" at address 0x72AC5242 and returned 0x776EFB66.
00:00:24.148: GetProcAddress(0x77260000 [KERNEL32.DLL], "EncodePointer") called from "COMCTL32.DLL" at address 0x72AC5242 and returned 0x776EFB66.
00:00:24.148: GetProcAddress(0x77260000 [KERNEL32.DLL], "EncodePointer") called from "COMCTL32.DLL" at address 0x72AC5242 and returned 0x776EFB66.
00:00:24.148: GetProcAddress(0x77260000 [KERNEL32.DLL], "EncodePointer") called from "COMCTL32.DLL" at address 0x72AC5242 and returned 0x776EFB66.
00:00:24.148: GetProcAddress(0x77260000 [KERNEL32.DLL], "EncodePointer") called from "COMCTL32.DLL" at address 0x72AC5242 and returned 0x776EFB66.
00:00:24.148: GetProcAddress(0x77260000 [KERNEL32.DLL], "EncodePointer") called from "COMCTL32.DLL" at address 0x72AC5242 and returned 0x776EFB66.
00:00:24.148: GetProcAddress(0x77260000 [KERNEL32.DLL], "EncodePointer") called from "COMCTL32.DLL" at address 0x72AC5242 and returned 0x776EFB66.
00:00:24.148: GetProcAddress(0x77260000 [KERNEL32.DLL], "DecodePointer") called from "COMCTL32.DLL" at address 0x72AC17D7 and returned 0x776FDB15.
00:00:24.148: GetProcAddress(0x77260000 [KERNEL32.DLL], "InitializeCriticalSectionAndSpinCount") called from "COMCTL32.DLL" at address 0x72AC4FDF and returned 0x772A43C9.
00:00:24.164: GetProcAddress(0x77260000 [KERNEL32.DLL], "EncodePointer") called from "COMCTL32.DLL" at address 0x72AC5242 and returned 0x776EFB66.

ik zal eens beginnen met oledb32.dll mee te installeren.

als ik een eige shell maak, kan ik dan problemen verwachten met kernel32 ? De msjetoledb4 gebruik je toch alleen voor een connectie met Access en niet met SQL-server ?

Acties:
  • 0 Henk 'm!

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 10-09 14:31
Blijkbaar is die al geinstalleerd, het laden lukt tenslotte.

Voor alle duidelijkheid: de DEPENDS output die je laat zien is een successcenario. Ik weet niet waarom je aanneemt dat je een DLL laad probleem hebt. Bepaal nu eerst eens waarom de CoCreateInstance() call faalt. Wat is GetLastError() daarna?

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Acties:
  • 0 Henk 'm!

  • pkouwer
  • Registratie: November 2001
  • Laatst online: 22-07 13:16
zo te zien faalt de CoCreateInstance() call niet:

00:00:03.604: GetProcAddress(0x75F10000 [OLE32.DLL], "CoCreateInstanceEx") called from "MSVBVM60.DLL" at address 0x726A4E3C and returned 0x75F5E1CB.
00:00:03.604: GetProcAddress(0x75F10000 [OLE32.DLL], "CLSIDFromProgIDEx") called from "MSVBVM60.DLL" at address 0x726A4E49 and returned 0x75F472AB.

en ik kan in de output geen GetLastError() vinden.

punt is: deze output komt van een werkend systeem. het niet-werkende systeem is een XPE image zodner shell, dus kan ik geen depends uitvoeren.


p.s. dit is voor mij de eerste keer dat ik met depends werk/nodig heb...

[ Voor 13% gewijzigd door pkouwer op 09-02-2010 22:45 ]


Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 11-09 12:01
Als je in je project file/in je form files kijkt met een text editor zie je vaak wat duidelijker welke COM componenten er precies gebruikt worden.

Een On Error Goto LogTheFriggingError vanuit je Sub Main ( dus wel ff starten vanaf daar en niet met een formulier ) kan je dan vertellen welk object precies de exception gooit ( dat kan niet in je Form_Load omdat sommige componenten voor de Form_Load al de handdoek in de ring gooien )

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • CoolGamer
  • Registratie: Mei 2005
  • Laatst online: 06-09 16:59

CoolGamer

What is it? Dragons?

Misschien heb je succes met de Process Monitor. Dan moet je kijken naar de reads in HKEY_CLASSES_ROOT\CLSID. Als er dan reads bij zitten naar een key die mislukken weet je waar je naar moet kijken. (Ik heb overigens deze methode niet zelf getest.)

¸.·´¯`·.¸.·´¯`·.¸><(((º>¸.·´¯`·.¸><(((º>¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸<º)))><¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸


  • jmzeeman
  • Registratie: April 2007
  • Laatst online: 08-09 07:36
Probeer anders eerst is een image te maken met explorer als shell en eventueel enkele (remote)debugtools er bij in. Dan kan je daar rustig je applicatie werkend krijgen. Pas als die werkt set je hem als shell, als hij het dan niet meer doet zal een van de dependencies van explorer nodig zijn, die kan je dan één voor één afstrepen.

  • pkouwer
  • Registratie: November 2001
  • Laatst online: 22-07 13:16
TheCoolGamer schreef op dinsdag 09 februari 2010 @ 23:36:
Misschien heb je succes met de Process Monitor. Dan moet je kijken naar de reads in HKEY_CLASSES_ROOT\CLSID. Als er dan reads bij zitten naar een key die mislukken weet je waar je naar moet kijken. (Ik heb overigens deze methode niet zelf getest.)
dit heb ik gedaan en zie idd een aantal reads die mislukken. maar dan, er staat alleen een GUID (?) achter, wat mij niets zegt...

dit heb ik idd in een werkende shell gedaan..

ik heb van het VB6 project een setup gemaakt en hieruit de DLL's en OCX (1x) gekopieerd naar c:\windows\system32 en met regsvr32.exe geregistreerd, maar helaas....

[ Voor 11% gewijzigd door pkouwer op 11-02-2010 21:41 ]


Acties:
  • 0 Henk 'm!

  • pkouwer
  • Registratie: November 2001
  • Laatst online: 22-07 13:16
niemand nog een ideetje in petto ?

Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 11-09 12:01
./selfquote


Wat was het resultaat van die test?

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • pkouwer
  • Registratie: November 2001
  • Laatst online: 22-07 13:16
farlane schreef op vrijdag 12 februari 2010 @ 20:54:
./selfquote


Wat was het resultaat van die test?
niets helps, zelf nieteen " complete" setup van het programmaatje. Getest in een XPE met Shell

Acties:
  • 0 Henk 'm!

  • CoolGamer
  • Registratie: Mei 2005
  • Laatst online: 06-09 16:59

CoolGamer

What is it? Dragons?

pkouwer schreef op donderdag 11 februari 2010 @ 21:16:
[...]

dit heb ik gedaan en zie idd een aantal reads die mislukken. maar dan, er staat alleen een GUID (?) achter, wat mij niets zegt...
Welke guids waren dit dan? Je zou ze in kunnen voeren in Google of kijken of die guids er wel bij staan op je eigen computer.

¸.·´¯`·.¸.·´¯`·.¸><(((º>¸.·´¯`·.¸><(((º>¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸<º)))><¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸


Acties:
  • 0 Henk 'm!

  • pkouwer
  • Registratie: November 2001
  • Laatst online: 22-07 13:16
het is me gelukt !! Ik heb in de Target Designer wat componenten toegevoegd w.o. MDAC, VB6 runtime libs en nog een paar. bedankt voor de hulp !!

[ Voor 64% gewijzigd door pkouwer op 12-02-2010 21:46 ]

Pagina: 1