|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||
|
Invité de passage
![]() Etienne CanuelMetallier Inscription : janvier 2013 Messages : 2 ![]() |
Bonjour,
Je suis un utilisateur de Solidworks, un logiciel de modélisation 3d dans lequel j'ai la possibilité de développer des macros en VB via Visual Basic For Application (VBA) qui fonctionne en 32b. Cette année, la nouvelle version de Solidworks propose Visual Studio Tools For Application à la place de Visual Basic For Application (VSTA) qui elle accepte le 32b et 64b. Je suis en train de développer une dll en C# avec Visual C# Express pour étendre les possibilités de mes macros. Pour pouvoir référencer ma DLL dans VBA ou VSTA, je coche les options "Rendre l'assembly visible par COM" et "Inscrire pour COM Interop" Mon problème est le suivant : Je compile la DLL sur mon système en 32b, je la référence dans VBA, tout fonctionne. Sur mon système 64b, je fais de même. La compilation se passe bien, le référencement dans VSTA aussi. Par contre, je n'arrive pas à renvoyer d'objet Solidworks via ma DLL. Je peux creer des objets SW, je peux creer des objets de ma DLL mais je ne peux pas renvoyer d'objets SW via une méthode de ma DLL. J'ai à chaque fois l'erreur suivante : Invalid index. (Exception from HRESULT: 0x8002000B (DISP_E_BADINDEX)) J'ai l'impression que mon pb vient des références vers mes objets crée dans ma DLL. Un exemple vaut mieux qu'un long discours : La macro VBA/VSTA qui plante Code :
Code :
Voici le code C# de ma méthode ExtSldWorks.Modele Code :
Code :
Une idée pour m'aider svp ? |
||||||||
|
|
00
|
|
|
#2 |
|
Invité de passage
![]() Etienne CanuelMetallier Inscription : janvier 2013 Messages : 2 ![]() |
Au final, je viens de trouver. Une sombre erreur de parenthèse.
J'ai pris une propriété pour une méthode J'ai écrit Code :
pModele.Init(_swSW.ActiveDoc(), this); Ce que je n'ai pas compris, c'est que Visual Studio ne m'indiquait pas d'erreur ni en édition, ni à la compilation. Donc résolu. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com