Ir ao conteúdo
  • Cadastre-se
Xandrules

Gerar um id toda vez que compilar um projeto

Recommended Posts

@vangodp  na verdade eu quero fazer um .h unico e distribuir esse Id para todos se caso um arquivo nao for compilado e ficar com um ID antigo vou receber um Alerta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda não entendi kkk Sinto muito :atirador:

adicionado 8 minutos depois

Em codeblocks você pode criar bibliotecas por separado, cada uma com seu controle de versão, e depois adiciona-as de forma recursiva para gerar um novo projeto. Não sei se te serve >_<

Compartilhar este post


Link para o post
Compartilhar em outros sites

@vangodp ja consegui valeu......

 

uint32_t ID = rand() % 0xFFFFFFFF;
	gerateID(ID);


	void *handle1;
	void *handle2;
	void *handle3;
	void *handle4;
	void *handle5;

	uint32_t (*getID)(void);

	char *error;

	handle1 = dlopen("libManagerConnection.so", RTLD_LAZY);
	handle2 = dlopen("libProtocol.so", RTLD_LAZY);
	handle3 = dlopen("libManagerConnectionPython.so", RTLD_LAZY);
	handle4 = dlopen("libKeepalive.so", RTLD_LAZY);
	handle5 = dlopen("libDBModule.so", RTLD_LAZY);
	/*--------------------------------------------------------------*
	 **					libManagerConnection.so
	 *--------------------------------------------------------------*/

	if (!handle1) {
		printf("[ ERRO ] libManagerConnection.so        NAO ENCONTRADO\n");

	} else {
		*(void **) (&getID) = dlsym(handle1, "getID");

		if ((error = dlerror()) != NULL) {

			fprintf(stderr, "%s\n", error);

			exit(EXIT_FAILURE);
		}

		uint32_t library_id = (*getID);

		if (library_id != CHECK_ID) {

			fprintf(stderr, "%s\n", dlerror());

			exit(EXIT_FAILURE);
		}
		else
		{
			printf("[Aceito]libManagerConnection.so          ID:%u\n", (*getID)());
		}
	}

	/*--------------------------------------------------------------*
	 **					libProtocol.so
	 *--------------------------------------------------------------*/

	if (!handle2) {
		printf("[ ERRO ] libProtocol.so                  NAO ENCONTRADO\n");

	} else {
		*(void **) (&getID) = dlsym(handle2, "getID");

		if ((error = dlerror()) != NULL) {

			fprintf(stderr, "%s\n", error);

			exit(EXIT_FAILURE);
		}

		printf("[Aceito]libProtocol.so                   ID:%u\n", (*getID)());
	}

	/*--------------------------------------------------------------*
	 **			libManagerConnectionPython.so
	 *--------------------------------------------------------------*/

	if (!handle3) {
		printf("[ ERRO ]libManagerConnectionPython.so     NAO ENCONTRADO\n");

	} else {
		*(void **) (&getID) = dlsym(handle3, "getID");

		if ((error = dlerror()) != NULL) {

			fprintf(stderr, "%s\n", error);

			exit(EXIT_FAILURE);
		}

		printf("[Aceito]libManagerConnectionPython.so    ID:%u\n", (*getID)());
	}
	/*--------------------------------------------------------------
	 *		 	libKeepalive.so
	 ---------------------------------------------------------------*/

	if (!handle4) {
		printf("[ ERRO ]libKeepalive.so                  NAO ENCONTRADO\n");


	} else {
		*(void **) (&getID) = dlsym(handle4, "getID");

		if ((error = dlerror()) != NULL) {

			fprintf(stderr, "%s\n", error);

			exit(EXIT_FAILURE);
		}

		printf("[Aceito]libKeepalive.so                  ID:%u\n", (*getID)());
	}

	/*--------------------------------------------------------------
		 *		 	libDBmodule.so
		 ---------------------------------------------------------------*/

		if (!handle5) {
			printf("[ ERRO ]libDBmodule.so                   NAO ENCONTRADO\n");


		} else {
			*(void **) (&getID) = dlsym(handle5, "getID");

			if ((error = dlerror()) != NULL) {

				fprintf(stderr, "%s\n", error);

				exit(EXIT_FAILURE);
			}

			printf("[Aceito]libDBmodule.so                   ID:%u\n", (*getID)());
		}
	//--------------------------------------------------------------

	dlerror(); /* Clear any existing error */

	dlclose(handle1);
	dlclose(handle2);
	dlclose(handle3);
	dlclose(handle4);
	dlclose(handle5);

	exit(EXIT_SUCCESS);

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×