devo rilasciare alcuni cambiamenti nella DLL selezionate (semplici cambiamenti interni ai metodi - nulla che rompe la compatibilità in base alle this)VB6 - rilasciando solo pochi DLL con la forte dipendenza senza rompere alcun riferimento
Così il generale Il metodo accettato è quello di mantenere le vecchie DLL in una directory condivisa separata e mentre si creano le nuove DLL, compilarle con la compatibilità binaria impostata sul vecchio set di DLL. Questo viene fatto per non modificare i GUID mentre registro le mie nuove DLL. Questi GUID sono utilizzati come riferimenti in altre DLL che non ho disturbato durante il rilascio.
Ora, quando provo a creare una qualsiasi delle nuove DLL, viene visualizzato un avviso: "La DLL di compatibilità binaria o EXE contiene un tipo di parametro o un tipo di restituzione la cui definizione non può essere trovata". Sono abbastanza sicuro di non aver aggiunto nulla per infrangere la regola di compatibilità binaria (nessuna modifica della firma, metodi pubblici, variabili, ecc.). Sono un noob non controllando qualcosa di base?
Scratching my head since morning. Ogni aiuto è molto apprezzato.
MODIFICA: Se non ci sono modifiche alla mia firma, c'è un modo che posso sapere senza il confronto del codice?
È possibile che il codice abbia interrotto la compatibilità in precedenza. VB6 non avvisa quando si aggiunge un nuovo metodo o proprietà pubblica, ma le successive compilazioni creano diversi tipi di file, poiché la DLL di riferimento non contiene ancora questo nuovo metodo. (Sto spesso impostando la compatibilità di dll con la stessa dll). Penso (ma non ho avuto esperienza) che quel messaggio specifico (... la definizione non può essere trovata) può indicare qualche cambiamento nei riferimenti del progetto o hai disinstallato/non registrato qualche altro componente dal tuo sistema. – Arvo
La destinazione di compatibilità binaria utilizza i tipi da typelib esterno (probabilmente un altro progetto VB6) che non è registrato correttamente sulla macchina di compilazione o è una nuova/vecchia versione incompatibile. – wqw
@Arvo - Sì, è possibile che il codice si sia rotto prima. In tal caso, dovrebbero esserci almeno due tipi di libreria (una per la pausa e una per la successiva). Ma il mio registro contiene solo uno – maverick