2011-11-30 1 views
0

J'ai une bibliothèque écrite en C# qui utilise des bibliothèques de framework .NET standard (System, System.Windows.Forms). Cette bibliothèque est ComVisible ainsi que ses classes, j'ai deux classes: - TestClass (une classe avec une méthode) - TestForm (un formulaire vide)Utilisation des bibliothèques .NET Framework dans l'assembly 64 bits référencé à partir de VBA7 dans Excel

Je me suis inscrit l'assemblée comme le suggère ici: C# COM DLL: do I use Regasm, or Regsvr32?

Ensuite, je suis allé à mon Excel Add-In et ajouté une référence au fichier .TLB généré.

Je suis en mesure de créer une instance de mon « TestClass » et invoquer sa méthode sans aucun problème, mais lorsque je tente de créer une instance de mon « TestForm » il me montre cette erreur:

Run-time error '-2147024894 (80070002)': 

Automation error 
The system cannot find the file specified. 

Selon les problèmes que j'ai vus en essayant de faire fonctionner la classe, le problème est que l'une des dépendances (je devine System.Windows.Forms) n'est pas trouvée par Excel. Comment ouvrir un formulaire écrit en .NET à partir de mon complément Office 64 bits?

Merci à l'avance

+0

Joli problème de DLL standard. Fuslogvw.exe vous parle des problèmes de résolution d'assembly gérés. ProcMon de SysInternals vous donne * tout *. Certains creuser requis. –

Répondre

1

exemple ci-dessous peut aide u comment le code VBA7 fonctionne dans Office 64 bits. Ajoutant dans le 64Bit Office Addins ne peut pas être un problème, mais lorsque vous essayez de les utiliser dans le VBA7, vous aurez certainement un problème.

Tester si weither en utilisant la version 64 bits (VBA7) d'Office 2010:

#If Win64(VBA7) Then 
    Declare PtrSafe Function GetTickCount64 Lib "kernel32"() As LongLong 
#Else(VBA) 
    Declare PtrSafe Function GetTickCount Lib "kernel32"() As Long 
#End If 

Si je me trompe me joindre avec la solution @ kirantej @ gmail.com Par conséquent, je travaille sur la même tâche aussi ... :-P

Questions connexes