¿Puedo Definir una Función de Callback en LabWindows/CVI y No Utilizarla en el Código?



Software Primario:
Versión de Software Primario: 7.0
Versión de Software Primario Corregido: N/A
Software Secundario: N/A

Problema:
Estoy realizando una aplicación en CVI y quiero definir todas mis funciones de callback en el archivo .uir sin definirlas en mi código aún. ¿Puedo tener una función de callback definida en el archivo uir sin definirla en el código?

Cuando trato de hacerlo recibo el siguiente error:

Error Code: -86
The callback function, <function_name>, specified in the UIR file, is not a known function. If you are using an external compiler, you must include the UIR callbacks object or source file in the executable or DLL.



Solución:
Si usted define una función de callback en un archivo uir y no la implementa en el código, el proyecto va a compilarse y crearse sin errores ni alertas. Sin embargo, cuando trate de correr el ejecutable va a haber un error de run-time informando que la función de callback es una función desconocida (vea la Figura 1).

Esto se debe a que el archivo uir crea el archivo de encabezado con el prototipo de las funciones de callback pero el código no implementa dicha función. Esto es perfectamente válido en ANSI C y el proyecto compila y se crea. Sin embargo, cuando el panel se carga utilizando la función LoadPanel, CVI busca los callbacks en el ejecutable y no va a encontrar un punto de entrada para una de las funciones de callback definidas. Un error de run time se genera porque no hay un código para manejar el evento que el control genera.

Para ejecutar código que solo tiene funciones de callback definidas en el uir implemente la función de callback en el código sin realizar el código específico para el callback. Puede utilizar la función Code » Generate » All Code... en el editor de uir para generar todos los callbacks necesarios.

Figura 1.



Ligas Relacionadas:
KnowledgeBase 4L6AR9PE: What Does the Return Value of a LabWindows/CVI Callback Function Do? (inglés)
KnowledgeBase 2TDFEPSJ: Receiving Error -86 When Using a LabWindows/CVI Static Library in Visual C++ (inglés)

Archivos Adjuntos:


callbackerror.jpg - callbackerror.jpg


Día del Reporte: 03/20/2003
Última Actualización: 04/23/2009
Identificación del Documento: 2VJDGI8O