Abbiamo utilizzato il vecchio msado15.dll nel nostro programma. E abbiamo usato per importarlo #import "msado15.dll". Ora solo pochi giorni fa abbiamo aggiornato a Windows 8. E, ahimè, il nostro software ha smesso di funzionare su Windows 7 che non ha installato Service Pack 1. In precedenza, quando usavamo Windows 7, eravamo passati al Service Pack 1 e lo stesso problema stava accadendo, quindi abbiamo disinstallato il Service Pack 1 per Windows 7 da tutte le macchine e tutto ha funzionato bene.COM msado15.dll Il programma è stato arrestato
Ma con Windows 8 suppongo che abbiano già modificato msado15.dll. Ho fatto qualche ricerca online e hanno detto che dovremmo sostituire le importazioni con msado60.tlb ma questo non ha funzionato con la nostra interruzione della compilation.
Questo è il modo che abbiamo usato per riferirsi nel nostro C++
import "c:\program Files\Common Files\system\ado\msado15.dll" rename_namespace("ADOCG") rename("EOF","EndofFile")
ho cambiato a
import "c:\program Files\Common Files\system\ado\msado28.tlb" rename_namespace("ADOCG") rename("EOF","EndofFile")
& anche cercato
import "c:\program Files\Common Files\system\ado\msado60.tlb" rename_namespace("ADOCG") rename("EOF","EndofFile")
Come suggerito da Microsoft Link. Ma funziona ancora dosent su macchine XP & Windows 7 Macchine su cui non è installato il Service Pack 1.
Può uno suggerire misure adeguate che possiamo seguire in modo da ottenere il nostro programma in esecuzione su Windows 7 senza Service Pack 1, nonché sul Windows 8.
sono stati bloccati con questo problema per qualche giorno ora . l'aiuto sarà molto apprezzato
Per quanto riguarda, Saurabh
Come ho gestito questo lavoro @ era un po 'strano, ma ha funzionato. Ho preso i file tli e tlh di msado15.dll generati da un progetto di scrap su una vecchia macchina VS2008/Win7, quindi ho semplicemente buttato via completamente le istruzioni di importazione. L'intestazione di stdafx.h includeva il tlh, lo stdafx.cpp tirava nel tli. Non aveva senso per me importare ripetutamente lo stesso file .dll con ogni build completa. A quanto pare, ha anche risolto una serie di altri problemi. Non so se funzionerà per te, ma diavolo, probabilmente hai provato cose strane a questo punto. – WhozCraig
Grazie mille, è stato davvero utile. Quello che abbiamo fatto è stato simile alla soluzione suggerita da te. Abbiamo preso il msaso15.dll del precedente cioè il Windows 7 senza versione sp1 e l'ho importato. E il problema è svanito. Penso che questo significhi che stiamo ancora usando il vecchio msado15.dll. Ma finché funziona, siamo felici. Grazie ancora. – Saurabh
Probabilmente non stai usando la DLL (per'se). Stai utilizzando le interfacce e CLSID definiti nella libreria dei tipi della DLL. Il tempo di esecuzione effettivo utilizzato al momento CoCreateInstance() viene installato dall'utente tramite un MSI ridistribuibile o già presente nel sistema. Ho appena assunto la middle man e ho generato i file TLH/TLI una volta, poi ho abbandonato completamente l'intero meccanismo di importazione e controllato i file TLH/TLI direttamente nella base di origine del progetto. – WhozCraig