Ir para conteúdo
Fórum Script Brasil
  • 0

String e Erro na compilação


fabianocouto

Pergunta

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.

// 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;
}

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

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...