Estou criando um fonte para uma dll onde pretendo gerar um array de vários tipos sendo que os tipos serão definidos em tempo de execução.
Pelo que pesquisei terei que usar ponteiro do tipo void. Para cada tipo informado pretendo alocar o espaço de memória para um tipo e armazenar o endereço alocado e o tipo utilizado.
Na função da dll que faz a alocação para o array o programa está abortando, bem no ponto da alocação. Segue o código da função onde acontece o erro (procurei colocar de forma enxuta):
iFields =1;extern"C" __declspec(dllexport)intAdd_Record(){void**pFields;int iCont, iRet;
printf("Antes\n");*pFields = malloc(sizeof(void*)* iFields);// alocando as posições para os ponteiros
printf("Depois\n");return0;}
Este mesmo código ao ser inserido na função main, em outro projeto de teste que gera um programa para console, não gera o problema. Segue abaixo
void** pFields;// variável para apontar para os camposint iFields =1;
printf("Antes\n");*pFields = malloc(sizeof(void*)* iFields);// alocando as posições para os ponteiros
printf("Depois\n");
Existe algum limitação ao trabalhar com a dll ou estou codificando alguma coisa de forma incorreta?
Notas sobre o ambiente de desenvolvimento:
Windows 7 - 64 bits
Dev C++ (saída do compilador gerando também para 64 bits)
Pergunta
RogersM
Olá,
Estou criando um fonte para uma dll onde pretendo gerar um array de vários tipos sendo que os tipos serão definidos em tempo de execução.
Pelo que pesquisei terei que usar ponteiro do tipo void. Para cada tipo informado pretendo alocar o espaço de memória para um tipo e armazenar o endereço alocado e o tipo utilizado.
Na função da dll que faz a alocação para o array o programa está abortando, bem no ponto da alocação. Segue o código da função onde acontece o erro (procurei colocar de forma enxuta):
Este mesmo código ao ser inserido na função main, em outro projeto de teste que gera um programa para console, não gera o problema. Segue abaixo
Existe algum limitação ao trabalhar com a dll ou estou codificando alguma coisa de forma incorreta?
Notas sobre o ambiente de desenvolvimento:
Agradeço pela atenção dispensada
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.