Asi pro většinu banální dotaz, nicméně si s tím nevím rady.
Lze použít pole jako parametr při volání funkce a to formou reference (odkaz na pole)? Chci to použít u dll export.
Má to takto: dllmain.h
#ifndef _DLLMAIN_H_
#define _DLLMAIN_H_
extern "C"
{
double __declspec(dllexport) ReBuild(int item, int index, double & ar[][]);
int __declspec(dllexport) Calc(int row, double t_opened, int sorte_dir);
int __declspec(dllexport) CountItem(int item1, int & item2);
}
#endif
dll_utm.cpp
#include <windows.h>
#include <stdio.h>
#include "dllmain.h"
//--------------------------------------------------------------
double ReBuild(int item, int index, double & ar[][])
{
...
...
}
//--------------------------------------------------------------
int CountItem(int item1, int & item2)
{
static int i=item1;
item2=item2+100;
i++;
return(i);
}
Po kompilaci mi to vrací:
9 D:\...\Dev_C\dllmain.h declaration of `ar' as array of references
8 D:\...\Dev_C\dll_utm.cpp declaration of `ar' as array of references
A teď nevím jestli to mám jen blbě zapsaný (pokud ano, prosím o radu jak to spravit) anebo to prostě nejde.
Přitom ve fci. CountItem(..., ...) mi referenční předání parametru funguje, tak si myslím, že by mělo jít i rozchodit to pole. Musím deklarovat velikost pole (počet prvků)...? Děkuji.