fcmpact

addPrototypes

Descripción

Añade las definiciones PROTO y las almacena en una tabla.

fcmpact.addPrototypes <result=results> <status=rc> / bridgeCatchSignals=TRUE | FALSE, bridgeFile="string", encode=TRUE | FALSE, funcTable={casouttable}, library="string", package="string", routineCode={"string-1" <, "string-2", ...>}, saveTable=TRUE | FALSE, stdcall=TRUE | FALSE;
Parámetros
ParámetroDescripción
bridgeCatchSignalsEspecifica que el archivo puente debe contener código para instalar y manejar señales.
bridgeFileEspecifica la ruta al módulo fuente del archivo puente PROTO.
encodeEspecifica que las definiciones de prototipos se codifican en la tabla de funciones guardada.
funcTableEspecifica la tabla donde se escriben las definiciones PROTO.
libraryEspecifica una biblioteca FCMP existente para cargar.
packageEspecifica el nombre del paquete FCMP utilizado para almacenar las definiciones PROTO.
routineCodeEspecifica el código de la definición PROTO que se guarda en la tabla.
saveTableEspecifica si la tabla FCMP debe guardarse.
stdcallEspecifica que las funciones deben ser llamadas usando la convención __stdcall (solo para PC con Windows).
Creación de Datos de Ejemplo

Este ejemplo no requiere una tabla de datos de entrada, ya que la acción se utiliza para definir prototipos de funciones que pueden ser utilizadas posteriormente en otros pasos de CAS.

¡Copiado!
1/* No se necesita código de creación de datos para este ejemplo. */

Ejemplos

Este ejemplo define un prototipo para una función externa simple llamada 'mycfunc' y lo guarda en una tabla CAS llamada 'myprotos'.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 fcmpact.addPrototypes /
3 routineCode={"proto mycfunc(double) returns double;"},
4 funcTable={name="myprotos", caslib="casuser", replace=true};
5QUIT;
Resultado :
La acción se ejecuta correctamente y crea la tabla 'myprotos' en la caslib 'casuser' con la definición del prototipo.

Este ejemplo define prototipos para dos funciones externas, 'mycfunc1' y 'mycfunc2', dentro de un paquete llamado 'myextfuncs'. Las definiciones se guardan en una tabla CAS llamada 'myprotos_advanced', y la definición se codifica para proteger la propiedad intelectual.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 fcmpact.addPrototypes /
3 routineCode={
4 "proto mycfunc1(double) returns double;",
5 "proto mycfunc2(double, double) returns double;"
6 },
7 package="myextfuncs",
8 encode=true,
9 funcTable={name="myprotos_advanced", caslib="casuser", replace=true, label="Prototipos Avanzados para Funciones Externas"};
10QUIT;
Resultado :
La acción crea una tabla llamada 'myprotos_advanced' en la caslib 'casuser'. La tabla contiene las definiciones codificadas de los dos prototipos dentro del paquete 'myextfuncs'.

FAQ

¿Cuál es el propósito de la acción `addPrototypes`?
¿Qué hace el parámetro `bridgeCatchSignals`?
¿Para qué se utiliza el parámetro `bridgeFile`?
¿Cuál es la función del parámetro `encode`?
¿Qué especifica el parámetro obligatorio `funcTable`?
¿Qué hace el parámetro `library`?
¿Cuál es el propósito del parámetro `package`?
¿Qué se define con el parámetro obligatorio `routineCode`?
¿Qué controla el parámetro `saveTable`?
¿Para qué sirve el parámetro `stdcall` y en qué sistema operativo se aplica?

Escenarios asociados

Caso de uso
Integración de un Modelo de Riesgo Crediticio Propietario

Una entidad financiera necesita integrar una función de cálculo de riesgo crediticio, desarrollada externamente en C, dentro de su entorno SAS Viya. El objetivo es registrar el ...

Caso de uso
Registro Seguro y Codificado de Algoritmos Genómicos

Una empresa de biotecnología distribuye un paquete de algoritmos genómicos a sus clientes para ser usados en SAS Viya. Es crucial que la lógica de negocio, representada por las ...

Caso de uso
Prueba de Estrés y Compatibilidad entre Plataformas

Un equipo de desarrollo de software está creando un conjunto de funciones que deben funcionar tanto en Windows como en Linux. Necesitan verificar cómo la acción `addPrototypes` ...