Red de conocimiento informático - Material del sitio web - Cómo utilizar el lenguaje de programación para escribir la función UCD para uso de Authorware

Cómo utilizar el lenguaje de programación para escribir la función UCD para uso de Authorware

Las funciones del propio Authorware y las funciones del sistema que proporciona no son suficientes para mejorar la flexibilidad de los programas multimedia de Authorware. A veces, los usuarios necesitan utilizar otras herramientas de desarrollo para generar funciones definidas por el usuario para ampliar la funcionalidad del programa. Es precisamente debido a la flexibilidad y conveniencia de UCD que muchos proveedores de software de terceros han producido muchos UCD con diferentes funciones para Authorware. El uso de estos UCD agregará mucho color a nuestros programas. Además de utilizar UCD creado por otros, también debemos poder crear nuestra propia función UCD, porque a veces el UCD existente no puede satisfacer nuestras necesidades. En este momento, Zhien puede desarrollar un UCD que satisfaga nuestras necesidades. "Todo es difícil al principio". Si nos piden que escribamos una función UCD ahora, podemos sentir que no tenemos forma de comenzar. De hecho, siempre que comprendamos el principio de la función UCD, es bastante fácil. Para crear una función UCD poderosa, por supuesto, el requisito previo es que debemos tener un cierto nivel de programación. A continuación, presentaré cómo utilizar Delphi para desarrollar una función UCD de 32 bits (U32). Crearé dos funciones UCD como ejemplos: a) Función Agregar: implementar la suma de dos números; b) Función UCase: convertir una cadena a mayúsculas. Los pasos específicos son los siguientes: 1. Cree una DLL normal u. Inicie Delphi3.0 y luego seleccione el comando de menú Archivo=> Nueva aplicación para crear un nuevo proyecto u. Seleccione el comando de menú Archivo=> Eliminar del proyecto y. seleccione Forml en la lista de la ventana emergente. Haga clic en el botón Aceptar y aparecerá una ventana de confirmación. Haga clic en el botón No para no guardar los cambios. u Seleccione el comando de menú Archivo=> Nuevo, luego seleccione el elemento Unidad en la ventana Nuevos elementos y haga clic en el botón Aceptar para agregar una nueva unidad al nuevo proyecto. Esta nueva unidad contendrá todo el código de la función UCD. u A continuación, debemos modificar el código existente para que cree un archivo DLL en lugar de un archivo EXE. Seleccione el comando de menú Ver=>Unidades, seleccione Proyecto1 en la ventana Ver unidad y luego haga clic en el botón Aceptar. u En este momento, se agregará un panel llamado Proyecto1 a la ventana Proyecto1.dpr. Notaremos que la primera línea de código en el panel es el programa Proyecto1, que se utiliza para crear un archivo EXE. Para que Delphi cree un archivo DLL, debemos cambiar la palabra clave "programa" a "biblioteca". u Dado que nuestro proyecto no requiere un formulario (Formulario), elimine la referencia a "Formularios" en la sección "usos". Porque si se conserva esta referencia, el archivo DLL final será aproximadamente 150 KB más grande que el archivo DLL sin esta referencia. Por supuesto, si necesita utilizar formularios en su DLL, mantenga una referencia a "Formularios". u Después de la sección "usos", debemos declarar todas las funciones personalizadas que se utilizarán en Authorware. En este ejemplo, primero agregamos el siguiente código: Exportaciones Agregar: la función de este código es exportar la función Agregar para que Otro. También se pueden utilizar aplicaciones. u Dado que no es necesario ejecutar el archivo DLL, también debemos eliminar las líneas "Application.Initialize" y "Application.Run" entre el inicio y el final. El último código modificado debería verse así: biblioteca Proyecto1; usa Unitl en 'UNT1.PAS'; exporta Agregar | $ R *.RES| En este ejemplo, llamamos al proyecto DllDemo.dpr y guardamos la unidad Unitl como Unitl.pas.

2. Cree la función Agregar Ahora implementemos la función Agregar personalizada. Los pasos principales son los siguientes: u Haga clic en la etiqueta Unitl en la ventana de código DllDemo.dpr para mostrar la ventana de código en el panel Unitl. u Debido a que la función Agregar es muy simple y no necesita realizar ningún trabajo especial al pasar o devolver un número entero, una palabra o un valor largo, el método de creación de esta función es el mismo que el de cualquier otra función de Delphi. En primer lugar, si desea crear una función utilizada en Authorware, debe declararla como una función que se puede generar. Por lo tanto, agregue el siguiente código después de la "palabra clave de interfaz: ues sysutils,wintypes,winprocs; function Add(. n1, n2:Integer):Integer;export; u La versión de 32 bits del programa Delphi requiere un segmento de código adicional y se agrega un indicador llamado "stdcall" al segmento de código. El programa Delphi sí lo hace. El indicador "stdcall" no se reconoce. Por lo tanto, para permitir que nuestra DLL admita versiones de programas Delphi de 16 y 32 bits, podemos usar declaraciones de inclusión condicional. Agregar declaración de función: |¥ ifdef WIN32| stdcall;($ endif) De esta manera, el compilador solo agrega segmentos de código adicionales en el caso de la versión de 32 bits. La modificación debe ser la siguiente: function Add(n1,n2, Integer):Integer;export ;$ ifdef WIN32| srdcall;|endif| u Ahora es el momento de agregar el código de implementación a la función Agregar. Después de la palabra clave "implementación", agregue el siguiente código: function Add(n1,n2: Entero): Entero; comenzar Resultado: = n1 + n2; final En este punto, se crea la función UCase. El código de la función UCase es un poco más complicado, porque las cadenas pasadas o devueltas. de Authorware son siempre caracteres de tipo lenguaje C, por lo tanto, si desea llamar a una función que usa una cadena de tipo pascal, primero debe convertir la cadena de tipo lenguaje C en una cadena de tipo pascal, y no podemos modificar directamente la cadena pasada. devuelto por Authorware porque esta cadena es de solo lectura.

u Abra la ventana de código Unitl y luego agregue el siguiente código después de la declaración de la función ReturnString en el segmento de código "interfaz" para declarar la función Ucase: function UCase(StringIn:Pchar) : Pchar ;export; $ ifdef WIN32| | $ endif | u Luego agregue el código de implementación de la función UCase después del código de implementación de la función ReturnString en el segmento de código de "implementación": function UCase(StringIn: Pchar): Pchar; para longitud de cadena.etc | Var retstr: matriz[0..64] de cadena para regresar a APW| outstr: cadena[64] | |convertir cadena C a cadena pascal | outstr: = Mayúsculas( instr ): | hacer la función, usando la función incorporada de Delhpi | strplcopy( retstr , outstr , 60): | (retstr): | devolver cadena a APW | fin; u Para que esta función se pueda utilizar en Authorware, también debe declararse como una función exportable en el archivo del proyecto. archivo de proyecto y luego generar Add. Agregue el siguiente código después de la declaración de función: Exporta UCase En este punto, la función UCase está completa. 4. Convertir DLL normal a UCD 1) Configure algunas opciones del proyecto. Regrese a Delphi, seleccione el comando de menú "Proyecto => Opciones" para abrir la ventana Opciones del proyecto y luego haga clic en la etiqueta "Compilador" en la ventana. l En el campo de combinación de Depuración del panel "Compilador", desmarque todas las casillas de verificación. l Haga clic en el botón Aceptar para cerrar la ventana Opciones del proyecto. 2) Cree un archivo de recursos. Hasta ahora, lo que hemos creado es solo una DLL normal, no el UCD compatible con Authorware. Por lo tanto, el siguiente paso es agregar recursos UCD a la DLL existente para que Authorware pueda cargarla directamente. en ello. Para lograr esto, debe crear un archivo de recursos con el sufijo .rc y luego compilarlo en un archivo .res. Utilice cualquier software de herramienta que pueda editar archivos de texto, luego agregue el siguiente código y finalmente guárdelo. en el directorio donde se encuentra la DLL creada, el nombre del archivo es MyUCD.rc. Tenga cuidado de no hacer que el nombre del archivo de recursos sea el mismo que el nombre del archivo del proyecto (es decir, ambos son DllDemo); de lo contrario, Delphi sobrescribirá el archivo de recursos.

El código es el siguiente: 1 DLL_HEADER PRELQAD DISCARDAPLE BEGIN “Add\0”, “UCase\0”, “\0”, END Add DLL_HEADER PRELQAD DISCARDAPLE BEGIN “\0”, “I\0”, “II\0” , “Resultado: = Add(Num1, Num2) \r\n", "\r\n", "Calcular la suma de dos números enteros Num1 y Num2\0", END UCase DLL_HEADER PRELQAD DISCARDAPLE BEGIN "\0", " S\0 ", "S \ 0", "Resultado: = UCase( str ) \ r \ n", " \ r \ n", "Convierte la cadena str a mayúsculas y la devuelve a Resultado \ 0", END 5 Implementar UCD El trabajo final es compilar el archivo de recursos recién creado para implementar la función UCD. Para completar esta parte del trabajo, debe utilizar la línea de comando de DOS. En Delphi3.0, el archivo ejecutable utilizado para compilar archivos de recursos se llama BRC32.EXE y se encuentra en el directorio Bin de Delphi3.0. Abra una ventana de DOS, vaya al directorio donde guardamos el proyecto Delphi y luego ingrese la siguiente declaración en el indicador de DOS: C:\Progta-1\Borland\Delphi-1\Bin\Brc32.exe – r MyUCD.rc – fdMyUCD.res Presione el carácter Enter y el comando DOS se ejecutará inmediatamente. Una vez completada la ejecución, se puede encontrar un archivo llamado MyUCD.res en el directorio actual. Ahora necesitamos agregar el archivo de recursos editado a nuestro proyecto. Por lo tanto, regrese a Delphi, haga clic en la etiqueta DllDemo en la ventana de código para abrir la ventana de código del proyecto y busque la siguiente línea de código: | $ R * .res | línea, porque nuestra La función UCD no usa un formulario, por lo que se puede eliminar. Por supuesto, mantener esta línea no causará ningún problema. Después de esta línea, agregue el siguiente código: | $ R MyUCD.res| En este punto, todo el trabajo está completo y luego abre un nuevo archivo en Authorware para probarlo. Todo es como esperaba. Por supuesto, en aras de la uniformidad, se recomienda cambiar el nombre de DllDemo.dll a DllDemo.u32, para que otros usuarios sepan que este archivo es un archivo UCD.

Por favor adopta