Problème avec le type variant
Bonjour j’aimerais savoir si quelqu’un aurait connaissance d’un problème avec le type variant sous borland c++ 6.0
Mon code fonctionne très bien sous l’ide mais dès que je lance l’exe en dehors de l’ide la mémoire est corrompue, et les variable locale sont écrasées , pourtant lorsque je trace pas à pas rien n'indique un dépassement de mémoire ????
Soit je fais une bétise soit c’est un bug sous borland ?
Merci de votre aide
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| // Variant vMsExcel = Variant::CreateObject("Excel.Application");
// un peu plus haut dans le code
void __fastcall TExcelAppl::BuildExcell(AnsiString fName,Variant *vMsExcel,int maxCol)
{
AnsiString Filter;
Variant cCell,
cRange,
cValue,
vXLWorkbooks,
vXLWorkbook,
vSheetName,
vWorkSheet;
vXLWorkbooks = vMsExcel->OlePropertyGet("Workbooks");
vMsExcel->OlePropertySet("SheetsInNewWorkbook",(Variant)1);
vXLWorkbook=vXLWorkbooks.OleFunction("Add");
vXLWorkbook = vMsExcel->OlePropertyGet("ActiveWorkbook");
vWorkSheet = vXLWorkbook.OlePropertyGet("ActiveSheet");
PropertyGet Range("Range");
PropertySet SetFormula("Formula");
Procedure SaveAs("SaveAs");
for(myRow=0;myRow<excellGrid->RowCount;myRow++)
{
myExcCol = 'A' ;
for(myCol=0;myCol<maxCol;myCol++)
{
Filter=myExcCol;
Filter += (myRow+1);
Range.ClearArgs();
SetFormula.ClearArgs();
cRange = vWorkSheet.Exec(Range << Filter); [b]ici ça écrase mes variable locales quand je ne suis pas dans l'ide
.[/b]
Filter = excellGrid->Cells[myCol][myRow];
cRange.Exec(SetFormula << Filter);
myExcCol+=1;
}
}
vXLWorkbook = vMsExcel->OlePropertyGet("ActiveWorkbook");
vXLWorkbook.Exec(SaveAs<<fName);
vXLWorkbook.OleFunction("Close", false);
cCell=
cRange=
cValue=
vXLWorkbooks=
vXLWorkbook=
vSheetName=
vWorkSheet=false;
} |