2010-11-27 44 views
1

Pourquoi le code suivant renvoie une erreur de paramètre non valide? Son équivalent en Delphi s'exécute bien.ExportAsFixedFormat

C++ Builder:

ActiveWorkSheet.OleProcedure("ExportAsFixedFormat", 0, EmptyParam, 
     EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, 
     EmptyParam); 

Delphi:

oSheet.ExportAsFixedFormat(0, // xlTypePDF is constant 0 
    EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, 
    EmptyParam, // set to True to open Acrobat 
    EmptyParam); 

Répondre

-1

Ajouter un autre EmptyParam. La fonction a 9 paramètres, donc lorsque vous l'appelez avec OleProcedure, vous devez envoyer 10 paramètres (puisque le premier paramètre est le nom de la fonction). Vous n'en envoyez que 9.

+0

Tout est correct là avec le nombre de paramètres. – Dmytro

0

En C++ (au moins dans VC), l'ordre des paramètres doit être inversé. Essayez ceci:

ActiveWorkSheet.OleProcedure ("ExportAsFixedFormat", EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, 0);

Espérons que cela aiderait