Hola kiko,
A veces ocurre que las cosas se arreglan de golpe al recopilar todo el proyecto.
Es algo no muy frecuente, pero que me ha pasado; tiene que ver con
cómo está definido el proyecto en C y a veces en el orden en que se
compilan librerías.
>Me pregunto y les pregunto, es siempre tan duro el trabajo con una DLL ?.
No, cada vez te va a ir siendo mas simple, a medidas que conozcas
como tenes que mover las palancas.
>Digo porque podría haber estado años renegando y no encontrar el problema.
jajaja creo que en algun momento (antes de un par de años)
hubieras apretado, quizás por error, el botón
para que recompile todo :-P
...los beneficios del encapsulamiento.
>Por otra parte el pasaje de los vertices a la DLL es otra cosa que no me paso nunca.
>Esto es lo que Ale hacía en genesis3D para pasarle un array de estruturas
No vi en detalle lo mio, ni lo tuyo; pero se me ocurre que si vos
recibis el puntero y no agregas/sacas nada, podes pasarlo directamente.
En lo mío, quizas estoy armando la estructura en smalltalk,
no se... tambien, claro, puede ser innecesario lo que yo haya hecho.
hasta pronto
Ale.
----- Original Message -----From: kikoGregorisTo: smalltalking@...Sent: Friday, December 19, 2008 2:01 PMSubject: [objetos] RE: Jet3D y VS
Hola Ale, listaBueno finalmente solucione el error, aunque no puedo explicar que es lo que paso en realidad.El tema es que luego de cambier el orden de los parametro del callback en la DLL y recompilar la DLL salio andando.No me explico cual es la verdadera razon para lo ocurrido, pero es muy loco.Me pregunto y les pregunto, es siempre tan duro el trabajo con una DLL ?.Digo porque podría haber estado años renegando y no encontrar el problema.Por otra parte el pasaje de los vertices a la DLL es otra cosa que no me paso nunca.Esto es lo que Ale hacía en genesis3D para pasarle un array de estruturas>>internalize: aCollection
"Returns an internal representation of instances of the receiver in aCollection."| bits |
bits := WriteStream on: (ByteArray new: aCollection first asParameter size).
aCollection do: [:vertex| bits nextPutAll: vertex asParameter ].
^bits contentsY en el api declaraba el argumento como struct.Yo hacía lo mismo y resulto que no funciono y tuve que hacer esto:Este es el método que se activa con el callback:drawFaceCB: context vertexs: aJetTransformedLitVertex numVertex: count"Display aPolygon formed from aCollection of JetTransformedLitVertex."|vertexs modVertexs|vertexs:= Array new: count.
0 to:(count-1) do:[:index | vertexs at: (index +1)
put: (JetTransformedLitVertex fromPointer:(aJetTransformedLitVertex+ (index*64)))].vertexs do:[:each | each a:128; r:255 ; g:0 ;b: 0; yourself].self enginerenderPolygon: aJetTransformedLitVertex asExternalAddress
texture: nil
flags: nil
numVertex: count.>>jeEngineRenderPoly: pEngine
points: pPoints
numPoints: numPoints
texture: pBitmap
flags: flags
" API Uncommented.
RenderPoly : if Texture is null, we Gouraud shade. "<api: '_jeEngine_RenderPoly@20' ulong ulong long ulong long none>
^self invalidArgumentComo ven yo paso directamente la dirección que me viene de la DLL como un ulong y no como hacia Ale al pasar un struct que el formaba con los vértices.Es normal esto o hay algo fuera de lo comun ?Me refiero a la solucion de ALE con referencia a la míasaludos kikoPD: No sé si se entiende
¡Buscá desde tu celular! Yahoo! oneSEARCH ahora está en Claro
http://ar.mobile.yahoo.com/onesearch