¿Podría funcionar una DLL D dentro de SAS?
(1)
Sí, puede escribir DLL en D que utiliza o implementa una API de C.
Debe asegurarse de que las firmas de función y las convenciones de llamada coincidan. En la página que vinculó, la convención de llamadas se indica como llamada stdcall
, por lo que sus funciones D deben ser anotadas con extern(Windows)
o extern(System)
.
He estado leyendo el libro de cocina D y cerca del comienzo está la siguiente oración:
D es binario compatible con C, pero no es compatible con la fuente.
SAS permite a los usuarios definir y llamar funciones C desde SAS . Pero me pregunto, ¿también sería posible hacer esto desde D?
Encontré la respuesta de Adam Ruppe para crear una DLL aquí , e intenté usar eso para crear el ejemplo de la DLL de la documentación de SAS; sin embargo, cada vez que voy a llamarlo, el dll se carga, y luego SAS se bloquea (sin ningún registro de bloqueo que pueda encontrar).