<div dir="ltr"><font size="4">"Tanto va el cántaro a la fuente hasta que se rompe"</font>,dicen...<div><br></div><div>Pues bien</div><div><br></div><div>Busque expresamente el error "Calling convention doesn't match forward" y lo encontré acá...</div>
<div><br></div><div><a href="http://www.freepascal.org/docs-html/user/userse62.html">http://www.freepascal.org/docs-html/user/userse62.html</a><br></div><div><br></div><div>Entendí que lo que estaba faltando era <span style="font-family:arial,sans-serif;font-size:13px"><b>stdcall;</b></span></div>
<div><span style="font-family:arial,sans-serif;font-size:13px"><b><br></b></span></div><div>Le agregue eso en la implementación y compiló... Ahora da otros errores pero ya tienen que ver con el TDD que estoy realizando, así que sigo adelante...<span style="font-family:arial,sans-serif;font-size:13px"><b><br>
</b></span></div><div><br></div><div>Ya me explicarán bien porque hay que utilizar <font color="#0000ff">constref</font> y no<span style="background-color:rgb(255,255,255)"> <font color="#ff00ff">const</font></span> como estaba en el paquete.</div>
<div><br></div><div>Agradezco la buena predisposición de sus respuestas.</div><div><br></div><div>Saludos y sigo adelante,</div><div><br></div><div>Pancho</div><div>Córdoba</div><div>Argentina</div></div><div class="gmail_extra">
<br><br><div class="gmail_quote">2014-06-20 16:04 GMT-03:00 francisco prieto <span dir="ltr"><<a href="mailto:fajprieto@gmail.com" target="_blank">fajprieto@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">No se si estoy mejor o peor Jose porque ahora le puse:<div><br></div><div><div class=""><div>type</div><div><br></div><div> // TNoRefCountObject</div><div> //</div><div> {: Base object to implement interfaces without reference counting }</div>
</div><div class=""><div> TNoRefCountObject = class(TObject, IInterface)</div><div> protected</div></div><div> function QueryInterface(const<b>ref</b> IID: TGUID; out Obj): HResult; stdcall;</div><div class=""><div>
function _AddRef: Integer; stdcall;</div>
<div> function _Release: Integer; stdcall;</div><div> end;</div><div><br></div></div><div>implementation</div><div><br></div><div>{ TNoRefCountObject }</div><div><br></div><div>function TNoRefCountObject.QueryInterface(const<b>ref</b> IID: TGUID; out Obj): HResult;</div>
<div class="">
<div>begin</div><div> if GetInterface(IID, Obj) then</div><div> Result := 0</div><div> else</div><div> Result := E_NOINTERFACE;</div><div>end; </div></div></div><div><br></div><div>y me da esta sarta de errores:</div>
<div>
<br></div><div><div>NoRefCountObject.pas(29,28) Error: Calling convention doesn't match forward</div><div>NoRefCountObject.pas(20,14) Hint: Found declaration: TNoRefCountObject.QueryInterface(constref TGuid,out <Formal type>):LongInt; StdCall;</div>
<div>NoRefCountObject.pas(37,28) Error: Calling convention doesn't match forward</div><div>NoRefCountObject.pas(21,14) Hint: Found declaration: TNoRefCountObject._AddRef:LongInt; StdCall;</div><div>NoRefCountObject.pas(42,28) Error: Calling convention doesn't match forward</div>
<div>NoRefCountObject.pas(22,14) Hint: Found declaration: TNoRefCountObject._Release:LongInt; StdCall;</div><div>NoRefCountObject.pas(48) Fatal: There were 3 errors compiling module, stopping</div></div><div><br></div><div>
Gracias por la mano,</div><div><br></div><div>Pancho</div><div>Córdoba</div><div>Argentina</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-06-20 15:55 GMT-03:00 José Mejuto <span dir="ltr"><<a href="mailto:joshyfun@gmail.com" target="_blank">joshyfun@gmail.com</a>></span>:<div>
<div class="h5"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">El 20/06/2014 20:33, francisco prieto escribió:<div><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
TNoRefCountObject = class(TObject, IInterface)<br>
protected<br>
function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;<br>
</blockquote></div>
function QueryInterface(constREF IID: TGUID; out Obj): HResult; stdcall;<div><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
function _AddRef: Integer; stdcall;<br>
function _Release: Integer; stdcall;<br>
end;<br>
<br>
</blockquote>
<br></div>
Esa es una diferencia con Delphi, al ser Delphi "Windows Only".<span><font color="#888888"><br>
<br>
-- <br>
<br>
<br>
______________________________<u></u>_________________<br>
Lazarus-es mailing list<br>
<a href="mailto:Lazarus-es@lists.lazarus.freepascal.org" target="_blank">Lazarus-es@lists.lazarus.<u></u>freepascal.org</a><br>
<a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://lists.lazarus.<u></u>freepascal.org/mailman/<u></u>listinfo/lazarus-es</a><br>
</font></span></blockquote></div></div></div><br></div>
</blockquote></div><br></div>