<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Visual Basic 6 e COM</title>
        <link>http://blogs.ugidotnet.org/dotNET4ever/category/Visual Basic 6 e COM.aspx</link>
        <description>Visual Basic 6 e COM</description>
        <language>it-IT</language>
        <copyright>Michele Bernardi</copyright>
        <generator>Subtext Version 2.6.0.0</generator>
        <item>
            <title>DLL HELL</title>
            <link>http://blogs.ugidotnet.org/dotNET4ever/archive/2004/11/18/5743.aspx</link>
            <description>&lt;HTML&gt;
&lt;BODY&gt;
&lt;FONT face=Verdana size=2&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;Sottotitolo: 
Ovvero perché AMO dotNET!&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;Premesse: é capitato in 3 o 4 
casi che l'installazione di un nostro programma realizzato in VB6&amp;nbsp;desse dei 
problemi su alcuni computer con windows XP.&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;2 spiegazioni: Una classe 
"Creator" ha un metodo che instanzia un'altra classe "Classe" (cosa non si 
faceva prima di avere i costruttori parametrici!).&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;Qualcosa come:&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;Dim C as Object&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;Set C = 
CreateObject("CreatorLib.Creator")&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;Dim IC as 
LibInterfacce.IClasse&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;Set IC =   C.CreaClasse(ParamaLong, 
ParamADODBConnection, ParamDefinitoInLibInterfacce)&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;Se Creator viene creata in late 
binding (sì, purtroppo dobbiamo!) abbiamo:&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;Errore n° 13 Tipo non 
corrispondente&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;Se viene creata con early 
binding:&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;Errore n°&amp;nbsp;5 Chiamata di 
routine o argomento non valido&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;Per mesi ho dato la colpa al 
versioning della nostra DLL contenente le interfacce che fanno collaborare le 
varie parti di tale&amp;nbsp;programma, visto che in precedenza ci aveva fatto 
sputare sangue ad ogni nuova versione. Oggi ho scoperto che mi sbagliavo!&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;La chiamata accetta 3 parametri: 
un long, una ADODB.Connection, ed una classe definita nella libreria delle 
interfacce (come sopra).&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;In realtà si tratta della 
versione di ADO!&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;Come l'ho scoperto? Chiamando 
C.CreaClasse senza assegnare il risultato ad alcuna variabile.&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;Tutti i miei progetti usavano ADO 
2.6&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;e sulla macchina c'erano 
installati ADO 2.6, 2.7 e 2.8&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;Guardando sul mio computer di 
sviluppo ho visto che ho anche un ADO 2.80&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;Ho scaricato l'ultima versione di 
ADO ed installata sul PC del cliente... E, come nelle favole, vissero felici e 
contenti con il programma funzionante fino al prossimo INFERNALE problema di DLL 
COM!&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FONT&gt;
&lt;FONT face=Verdana size=2&gt;
&lt;P&gt;
&lt;A href="http://sourceforge.net/projects/imho10"&gt;
    &lt;IMG src="http://www.boschin.it/imho/powered.gif" width="75" height="19" border="0"&gt;
&lt;/A&gt;
&lt;/P&gt;
&lt;/FONT&gt;
&lt;/BODY&gt;
&lt;/HTML&gt;&lt;img src="http://blogs.ugidotnet.org/dotNET4ever/aggbug/5743.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Michele Bernardi</dc:creator>
            <guid>http://blogs.ugidotnet.org/dotNET4ever/archive/2004/11/18/5743.aspx</guid>
            <pubDate>Thu, 18 Nov 2004 17:35:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/dotNET4ever/archive/2004/11/18/5743.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/dotNET4ever/comments/commentRss/5743.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/dotNET4ever/services/trackbacks/5743.aspx</trackback:ping>
        </item>
    </channel>
</rss>