Buenas, estoy intentando hacer funcioanr la libreria en este IDE ya que me interesa usarlo aqui por serme mas comodo.
El caso es que al compilar me tira el siguente error:
LINK : fatal error LNK1104: no se puede abrir el archivo 'uuid.lib'
He hecho los siguientes paso, aver si algo he hecho mal:
1.Descargo y extraigo el rar preparado para vs, lo extraigo en C:\CRM32Pro.
2.Creo una Variable de entorno de usuario CRM32Pro con la ruta C:\CRM32Pro
3.En VC++ voy a herramientas>opciones>proyectos y soluciones>Directorios de VC++ y añado $(CRM32Pro) en la seccion de ejecutables, inclusion y bibliotecas.
4.Creo un proyecto de codigo existente para compilar el BasicCode.cpp
5.Añado las librerias al proyecto: CRM32Pro.lib y sdlmainIO.lib(tambien probe con sdlmain.lib)
El archivo BasicCode lo tuve que modificar, al parecer VC++ no tiene el archivo windows.h
Quedo asi:
// ---Includes---
#include <CRM32Pro.h>
// ---Prototypes---
void PrintHelp();
// ---Defines---
#define EXAMPLE_VERSION "Example 1: basic code"
#define GFX_RESOURCE "data/gfx.dpf" // DPF with graphic resources
#define AUDIO_RESOURCE "data/audio.dpf" // DPF with sound resources
// -------------MAIN FUNCTION----------------
int main(int argc,char *argv[])
{
Uint8 done = 0;
SDL_Event event;
Uint32 cCursor; // Cursor ID
SDL_Surface*sBg; // Background surface
int hndClick; // Click sound
// -Print help on a window-
PrintHelp();
// -Log system initialize-
ILogSystem.Init("BasicCode.log",LOG_FILE,LOG_NORMAL,EXAMPLE_VERSION);
// -CRM32Pro and SDL initialize-
if(CRM32Pro.Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER) < 0)
{
ILogSystem.Msg(LOG_NORMAL," · [LOG] - Couldn´t initialize CRM32Pro: %s\n",SDL_GetError());
return 1;
}
// -Desired config-
CRM32Pro.Config.Title = EXAMPLE_VERSION;
CRM32Pro.Config.Icon = IImage->Load(GFX_RESOURCE,"icono");
CRM32Pro.Config.bMTFriendly = 1;
// -Graphics system initialize-
if(!CRM32Pro.SetVideoMode())
{
CRM32Pro.Quit();
return 1;
}
ICursor->Init();
cCursor = ICursor->Load(GFX_RESOURCE,"cursor");
ICursor->Select(cCursor);
// -Sound system initialize-
if(!ISoundFX->Init(44100, AUDIO_S16, 2, 4096))
{
ILogSystem.Msg(LOG_NORMAL," · [LOG Warning] - Couldn´t init sound system: %s\n",SDL_GetError());
}
// -Time system initialize-
ITimeSystem->Init();
ITimeSystem->SetRate(0,20); // Optional: desired Rendering and Logic Frame Rate
// -Your code...-
// Load resources
hndClick = ISoundFX->SoundLoad(AUDIO_RESOURCE,"click");
sBg = IImage->Load(GFX_RESOURCE,"background");
SDL_BlitSurface(sBg,NULL,CRM32Pro.screen,NULL);
// -Main loop-
while(!done)
{
// Main system update and events loop
while(CRM32Pro.Update(&event))
{
switch(event.type)
{
case SDL_MOUSEBUTTONDOWN:
ISoundFX->SoundPlay(1,hndClick,0);
break;
case SDL_QUIT:
done = 1;
break;
case SDL_KEYDOWN:
if(event.key.keysym.sym == SDLK_ESCAPE) done = 1;
break;
default:
break;
}
}
}
// -Print useful information-
ITimeSystem->Info();
ICursor->Info();
CRM32Pro.VideoInfo();
CRM32Pro.AudioInfo();
// -Free resources and exit-
ISoundFX->SoundFree(hndClick);
CRM32Pro.FreeSurface(sBg);
ICursor->Delete(cCursor);
CRM32Pro.Quit();
return 0;
}
// --------------------Help STUFF------------------------
// -Print help-
void PrintHelp()
{
char *sMsg;
// Create the message
sMsg = new char[1024];
strcpy(sMsg,"-----------------------------------------------------------\n");
strcat(sMsg," ");
strcat(sMsg,EXAMPLE_VERSION);
strcat(sMsg,"\n-----------------------------------------------------------\n\n");
strcat(sMsg," Press [ESCAPE] key to exit.\n");
strcat(sMsg,"\n To see further information, open 'BasicCode.log'.\n");
strcat(sMsg,"\n");
// Display the message
#ifdef _LINUX
printf("CRM32Pro SDK - HelpScreen\n%s",sMsg);
#endif
// Free the message
delete sMsg;
}
¿Que puede ser?
Supongo que habras instalado el Microsoft Platform SDK, y lo tienes añadido a la ruta de include y lib.
creo que me lo descargo al instalarlo(el VC++ Express), de todas formas ese sdk creo k hace falta para compilar cualquier cosa, y lo demas si lo puedo compilar, solo esto no.
buenas!
eso es un rollo del express, en su dia lo probe con el 2005 completo y no me dio problemas (quizas porque instale tambien el platform SDK).
Ese fichero lo puedes encontrar en el platform SDK, luego tendras que incluir el directorio lib de el en tu visual studio, y creo que el windows.h tambien lo puedes encontrar en el mismo platform SDK.
Si no lo encuentras, te paso una copia por email.
Saludos!
tengo el platform instalado, pero lo reinstalare por si las moscas, sino me funciona, ya te pedire, si no te importa, los archivos esos que faltan del SDK.
Un Saludo
Sin problemas, pasame por un privado tu mail y te los envio.
Suerte!!
PD: creo que el platform SDK viene con algun .but que activa unas cuantas variables de entorno, yo miraria por ahi antes de reinstalar...
Bien, ya reinstale el sdk y ya puedo compilar, aunque algo raro pasa, al darle a compilar debug en el vc++ me sale el programa como si estuviera en otro directorio que ni es debug ni release, por que no me encuentra los archivos de imagenes ni sonido, y al cerrarlo hace un error de infraccion de acceso al escribir en memoria, sin embargo el ejecutabe aparece en debug, y desde ahi funciona perfectamente. tal vez hay algo que desconozco de como funciona esto y no me doy cuenta, pero ya almenos funciona, gracias!
me alegro que ya funcione la cosa :)
y... estas probando por probar o tienes algo en mente?
suerte!
a que te refieres, con CRM32Pro?, pues a programar videojuegos :P, este veranito cuando ya termine yo el instituto, me voy a pegar una pecha de programar con esta libreria y con otras 2 mas a hacer juegos y algunas cositas mas para musica que tengo en mente, que tengo mil ideas y nada de tiempo pa sentarme a escribir tranquilo jajajaja.
Un Saludo!
Azza podrias poner una guia detallada de como instalar correctamente la libreria en el Visual Studio 2005 (expreso y no expreso)?
Esque estoy intentando hacerlo funcionar con el studio completo y no me aclaro :roll:
Harko.
Cuando lo instale con la VS2005 completa lo unico que hice fue agregar el directorio include y lib donde tenia CRM32Pro y el resto funciono solo...
que problema te esta dando??
Otra cosa que se puede hacer para solucionar el problema es añadir la siguiente linea a las opciones del linker
/nodefaultlib:uuid.lib
Cita de: "TheAzazel"Cuando lo instale con la VS2005 completa lo unico que hice fue agregar el directorio include y lib donde tenia CRM32Pro y el resto funciono solo...
que problema te esta dando??