Ola pessoal, tudo bem, estou começando agora a participar deste fórum, peço desculpas se estou postando no lugar errado...Pergunta: estou convertendo um programa escrito em C, em uma DLL pra poder usar as funções no VB6,
mais fiquei preso numa função onde tenho que passar um array para a função e ela me retornaria um
valor, mais cada vez que a função da DLL me retorna esse valor, toda vez ele vem diferente, alguém
poderia me ajudar..
Função da DLL.
EXTERNC __declspec(dllexport) int __stdcall Test(int *dArray);
Chamada da Função em C.
cArray = getAlocate2D(10, 4);
//CHAMADA DA FUNÇÃO DA DLL
Max = Test(cArray);
printf("Test = %d\n\n", Max); //FUNCIONA CORRETAMENTE
// We return the pointer
int **getAlocate2D(int N, int M) /* Allocate the array */
{
/* Check if allocation succeeded. (check for NULL pointer) */
int i, **table;
table = malloc(N*sizeof(int *));
for(i = 0 ; i < N ; i++)
table[i] = malloc( M*sizeof(int) );
return table;
}
Chamada da Função em VB6.
Private Declare Function Test Lib "Suport.dll" (ByRef MyArr() As Long) As Long
Dim longArray() As Long
ReDim longArray(10, 4)
'COMPLETA O ARRAY AQUI COM VALORES
'Call CompleteArray(longArray())
Max = Test(longArray())
Me.Print "Test = " & Max