¿Dónde puedo encontrar información sobre cómo escribir bibliotecas de vínculos dinámicos usando VB o VB.net?
Punto de vista de NewViewStudio:
La DLL creada en VB es solo un componente COM y no puede usarse como una DLL para funciones de salida. De hecho, esto es simplemente una afirmación incorrecta. De hecho, la EM es muy astuta. Si eres un fanático de VB, deberías probar este método para crear una DLL que exporte funciones.
De hecho, VB compila el archivo dos veces. Primero, se llama a C2.exe para generar archivos *. Luego se llama a la conexión Link.EXE. De hecho, es posible exportar funciones si agrega la opción de exportación al vincular. Sin embargo, estos están bloqueados en las opciones del proyecto de VB. Es más, VB eliminará el archivo OBJ una vez completada la compilación, por lo que no podemos crear manualmente la DLL que necesitamos a través de Link. Pero encontré un método más pasivo y flexible, que consiste en crear primero un proyecto Exe y escribir la siguiente declaración en el evento Form_Load:
Subdirector
If MsgBox("Jaja" , vbOKCancel) = vbOK luego
Comando Shell "link2.exe "$
Terminará si...
Finalizar conector
Luego integre LinkTemp.EXE, luego cambie el nombre de LINK.EXE a Link2.exe y cambie el nombre de LinkTemp.EXE a Link.EXE. De esta manera, cuando VB llame a Link.EXE, aparecerá un cuadro de diálogo y se interrumpirá el procesamiento. En este punto, puede tener la oportunidad de copiar los archivos OBJ.
Luego creé un proyecto DLL ActiveX, en el que agregué un módulo y creé una función pública mathadd:
La función pública mathadd(ByVal a es siempre que ByVal b sea el misma longitud) tiene la misma longitud
mathadd = a b
Función final
La compilación de este proyecto se interrumpirá al vincular. Luego haga una copia de seguridad de la clase 1 creada. obj, Módulo1.obj y Proyecto1.obj.
Luego puedes llamar a Link2.exe para conectar el OBJ a la DLL. Mi código de conexión es:
Link2.exe " E:\VB dll\class 1. obj" "E:\VB dll\module 1. obj" "E:\VB dll\project 1. obj " " E:\Program Files\Microsoft Visual Studio\VB98\VBA exe 6. LIB "/ENTRY:_ _ vbaS/EXPORT:mathadd/OUT:" e:\VB Dll\project ok.Dll "/BASE:0x 11000000 /SUBSISTEMA:WINDOWS,4.0/VERSIÓN:1.0/Dll/INCREMENTAL:NO/OPT:REF/MERGE:. datos=. Texto/Ignorar: 4078
Tenga en cuenta los modificadores /ENTRY y /EXPORT en el interior. El modificador /EXPORT declara la función de salida mathadd.
Esto se hace. También puede introducir otros lenguajes, como VB, siempre que:
Función de declaración privada mathadd Lib "e:\VB dll\project ok. dll"(ByVal a es Long, ByVal. b es largo) es largo
Observaciones del moderador:
1), puede consultar Visual Basic escrito por Ron Petrusha para crear una DLL de Windows (/pub/a/Windows/2005 /04/ 26/create _ dll.html? page=1)
2) Aquí hay un ejemplo chino, vbmakedll.zip.
Opinión de Lao Niu:
Estoy de acuerdo en que el NewViewStudio de arriba se puede modificar para crear una biblioteca de enlaces dinámicos con función de salida estándar; de hecho, alguien en el extranjero ya ha creado complementos en VB. Es muy conveniente hacer una DLL estándar en él. También he hecho pruebas y demuestra que es factible. Consulte aquí para obtener más detalles:
/vb/scripts/ShowCode.asp? ID de código de texto = 54190 amp; lngWId=1