Bueno, este era el mensaje que no queria tener que publicar:
Estas equivocado. Aun siguiendo ese procedimiento, no se hacen Dll's verdaderas.
La verdad es que NO, el que esta equivocado sos vos y en gran forma.
No exportan funciones.
Leyendo tremenda barbaridad me vienen a la mente dos preguntas: ¿Leiste el articulo? ¿Llevaste el procedimiento a la practica? ¿De verdad lo leiste? ¿Seguro que lo probaste?
La prueba la tienes en que Si desensamblas una DLL hecha con ese procedimiento, mantiene la referencia a MSVBVM.DLL.
Es decir, que sin ese archivo no funcionara la DLL creada.
Entonces mi DLL mono.dll escrita en assembly no es verdadera ya que depende de mi otra DLL perro.dll escrita en C ... ¿Acaso no eso es lo que estas diciendo? Mas aun, trazando un claro paralelismo entre la MSVBVMXX.dll y la MSVCRT.dll (Run Time de C) tenemos que una DLL escrita en C y con la Run Time enlazada dinamicamente TAMPOCO es una DLL "verdadera".
Bueno, la respuesta es que nuevamente estas equivocado, que siga dependiendo de MSVBVMXX.DLL no prueba absolutamente nada mas que eso. Por favor, antes de decir que alguien esta equivocado hay que sopesar si uno sabe de lo que esta hablando.
Y desensamblar la DLL para ver que tiene una dependencia es una incongruencia, en el codigo no vas a ver la dependencia ya que la misma es simplemente una llamada a una direccion alojada en una tabla. Para ver las dependencias se usan programas mucho mas simples que un desensamblador como el Dependency Walker.
Si creamos 1 DLL en VB con una funcion por ejemplo, y ponemos Rundll32 midll.dll,nombrefuncion dara error de entrypoint. Una DLL de "verdad" ejecutaria la funcion
Vuelvo a la anterior: ¿De verdad leiste el articulo? En la segunda pagina se muestra como creando una DLL ActiveX da el error que comentas ya que ciertamente por defecto VB no permite exportar funciones pero en la tercera pagina explica como hacer que el enlazador exporte las funciones que queres mediante un par de metodos diferentes ...
ah, hablando de inyeccion creo que la DLL generada de esta forma no sirve para eso.
No hay que creer, sino probar y saber: estas equivocado (de nuevo).