Ir ao conteúdo
  • Cadastre-se

Gerar um id toda vez que compilar um projeto


Xandrules

Posts recomendados

@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);

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...