Sou novo por aqui e estou começando a aprender a linguagem. Estou iniciando meus estudos migrando algumas bibliotecas que tenho feito em VB, mas estou tendo algumas dificuldades. Abaixo segue parte o código que é de uma DLL para quem possa ajudar.
// cpf_cnpj.cpp : Defines the entry point for the DLL application.
//
#include <windows.h> // Standard Windows Include
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include "StdAfx.h"
bool __stdcall CheckCPF(LPCSTR Number);
LPCSTR pRemoverFormato(LPCSTR szNumber);
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;
}
bool _stdcall CheckCPF(LPCSTR Number)
{
int nd[2], sd[2];
double acum;
int resto;
int idx, nctr, nloop, coef;
int tam;
LPCSTR sNum;
// Aqui na compilação diz que a função ou variável não foi declarada
// Se eu apago ou comento a linha tudo funciona
sNum = pRemoverFormato(Number);
//
tam = strlen(sNum);
if (tam != 11)
{
::MessageBox(NULL, "O número do CPF deve conter 11 dígitos.", "Biblioteca de validação de CPF/CNPJ", 0);
return false;
}
nd[0] = sNum[9];
nd[1] = sNum[10];
for (nctr = 0; nctr <= 1; nctr++)
{
coef = 2;
acum = 0;
resto = 0;
idx = nctr + 9;
for (nloop = idx; nloop >= 1; nloop--)
{
acum += sNum[nloop] * coef;
coef++;
}
resto = (int) acum % 11;
resto = ((resto = 0) || (resto = 1)) ? 0 : (11 - resto);
nd[nctr] = resto;
}
return ((nd[0] == sd[0]) && (nd[1] == sd[1]));
}
/* Como não consigui trabalhar direito com string, char etc, porque
não consigo um entendimento claro isso foi o máximo que
consegui através de exemplos, se puder melhor e dizer aonde está os erros, agradeço
*/
LPCSTR pRemoverFormato(LPCSTR szNumber)
{
int i, n, l;
char AscChar[1];
//char newString[] = "", argString[] = "";
LPCSTR newString = "", str_ret;
n = strlen(szNumber);
//strcpy(argString, szNumber);
for (i; i <= n; i++)
{
l = szNumber[i];
AscChar[1] = szNumber[i];
if ((l >= 48) && (l <= 57))
{
//strcat(newString, AscChar);
newString += szNumber[i];
}
}
str_ret = newString;
return str_ret;
}
Pergunta
fabianocouto
Olá a todos,
Sou novo por aqui e estou começando a aprender a linguagem. Estou iniciando meus estudos migrando algumas bibliotecas que tenho feito em VB, mas estou tendo algumas dificuldades. Abaixo segue parte o código que é de uma DLL para quem possa ajudar.
Aqui o erro do compilador
D:\projetos.C++\cpf_cnpj\cpf_cnpj.cpp(47) : error C2065: 'pRemoverFormato' : undeclared identifier
Obrigado a quem puder ajudar.
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.