Hola. Estoy interesado en la construccion de plugins con Dev-c++ en lenguaje C. Con los tutoriales de Sandy Barbour y del SDK no consigo aclararme de como configurar este entorno para desarrollar los .dll. Intento con los ejemplos del SDK y tengo problemas al compilar (creo que defino las rutas de "includes" y "librerias" correctamente) . ¿ Alguien que use este editor sabría detallarme como configurarlo y los encabezamientos y "macros" necesarios para poder compilar algo que funcione?. (en principio me conformaria con poder compilar plugin "Hello World")(un script completo, si teneis, seria fantastico...)
No uso ese IDE en concreto, uso Visual Studio v 6.0, pero... ¿Te has acordado de definir las macros IBM=1 y XPLM200?
Si compilas para Windows debes poner el IBM=1, si es para linux será LIN=1 y si es para Mac APL=1; y si estás usando la API de X-Plane en su versión 2.0, entonces necesitas definir la macro XPLM200, de lo contrario solo podrás usar funciones de la API en su versión 1.0
Eso aparte de definir las librerías y los includes corréctamente, claro.
Mira, tienes todo explicado aqui:
http://www.xsquawkbox.net/xpsdk/mediawiki/BuildInstallRecuerda que si estás haciendo un plugin del tipo FAT, de los que van en el propio directorio plugins, dentro del directorio del avión, en lugar de ponerlo en el directorio general de plugins de X-Plane, debes obligatoriamente usar la API en su versión 2.0 y, por ende, definir la macro XPLM200
Por ejemplo, esta es la típica configuración que uso para Windows + FAT plugin cuando compilo para depuración:
Definiciones del preprocesador:
WIN32,_DEBUG,_WINDOWS,_MBCS,_USRDLL,SEAMAX_EXPORTS,IBM=1,XPLM200
Includes (definición de directorios):
..\..\..\SDK\CHeaders\Widgets,..\..\..\SDK\CHeaders\Wrappers,..\..\..\SDK\CHeaders\XPLM
Y no te olvides de definir la función de Attach si estás compilando para Windows
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
Y algunos includes dentro de mi código:
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <XPLMPlugin.h>
#include <XPLMProcessing.h>
#include <XPLMDataAccess.h>
#include <XPLMUtilities.h>
Suerte