Foros - Stratos

Proyectos => CRM32Pro => Mensaje iniciado por: _16BITGuy_ en 21 de Mayo de 2007, 12:25:25 PM

Título: Intento hacerlo funcionar en Visual C++ 2005 Expres peeroo..
Publicado por: _16BITGuy_ en 21 de Mayo de 2007, 12:25:25 PM
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?
Título: Intento hacerlo funcionar en Visual C++ 2005 Expres peeroo..
Publicado por: Javi SJ Cervera en 21 de Mayo de 2007, 01:44:21 PM
Supongo que habras instalado el Microsoft Platform SDK, y lo tienes añadido a la ruta de include y lib.
Título: Intento hacerlo funcionar en Visual C++ 2005 Expres peeroo..
Publicado por: _16BITGuy_ en 21 de Mayo de 2007, 04:53:34 PM
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.
Título: Intento hacerlo funcionar en Visual C++ 2005 Expres peeroo..
Publicado por: TheAzazel en 21 de Mayo de 2007, 09:07:28 PM
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!
Título: Intento hacerlo funcionar en Visual C++ 2005 Expres peeroo..
Publicado por: _16BITGuy_ en 22 de Mayo de 2007, 11:58:18 AM
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
Título: Intento hacerlo funcionar en Visual C++ 2005 Expres peeroo..
Publicado por: TheAzazel en 22 de Mayo de 2007, 01:15:17 PM
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...
Título: Intento hacerlo funcionar en Visual C++ 2005 Expres peeroo..
Publicado por: _16BITGuy_ en 23 de Mayo de 2007, 06:43:38 PM
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!
Título: Intento hacerlo funcionar en Visual C++ 2005 Expres peeroo..
Publicado por: TheAzazel en 23 de Mayo de 2007, 06:51:03 PM
me alegro que ya funcione la cosa :)

y... estas probando por probar o tienes algo en mente?

suerte!
Título: Intento hacerlo funcionar en Visual C++ 2005 Expres peeroo..
Publicado por: _16BITGuy_ en 23 de Mayo de 2007, 07:01:52 PM
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!
Título: Intento hacerlo funcionar en Visual C++ 2005 Expres peeroo..
Publicado por: Harko en 08 de Junio de 2007, 03:10:30 PM
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.
Título: Intento hacerlo funcionar en Visual C++ 2005 Expres peeroo..
Publicado por: TheAzazel en 13 de Junio de 2007, 12:48:34 AM
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??
Título: Intento hacerlo funcionar en Visual C++ 2005 Expres peeroo..
Publicado por: perrofeo307 en 24 de Septiembre de 2007, 05:35:39 PM
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??