2009-05-05 7 views
0

J'ai découvert que je ne peux pas charger les DLL 32 bits en utilisant ma version d'Office 2007. J'utilise Vista 64 bits et je suppose que Office est également en 64 bits mode. Est-il possible de démarrer Excel en mode 32 bits Ou Existe-t-il un moyen de déclarer une DLL en utilisant VB pour charger une DLL 32 bits?Chargement de 32 bits DLL en utilisant Excel 2007 (version Vista 64 bits)

Comme je n'ai pas le code source de certaines DLL que j'utilise, je ne peux pas simplement recompiler des données pour le mode 64 bits. Je pense donc que mes options sont de forcer Excel à fonctionner en mode 32 bits ou de déclarer la DLL que j'utilise comme une DLL 32 bits même si mon environnement est 64 bits. L'erreur que j'obtiens est "DLL introuvable" même si la DLL est en fait là.

Vous trouverez ci-dessous un exemple de déclaration. Y a-t-il un attribut 32 bits pour cette instruction?

Private Declare Function ESQMain Lib "ESQuotes2.dll" Alias ​​"_ESQMain @ 12" _ (ByVal func As Long, ByVal TICKER_SYMBOL As String, ByVal Résultat As String) As Integer

+0

Cette question est mauvaise. J'ai découvert qu'il n'y a pas de version 64 bits de bureau, donc mon vrai problème est que Excel ne chargera tout simplement pas ou ne peut pas trouver ma DLL, peu importe où je l'ai mis. –

+0

La réponse s'est avérée être qu'Excel 2007 recherche maintenant dans différents endroits pour la DLL. J'ai découvert ceci en téléchargeant le moniteur de processus de sysinternals et ai noté qu'il ne regarde pas dans le même dossier que le classeur et ne recherche plus dans windows \ system32 non plus. –

Répondre

0

Vous ne pouvez pas « déclarer "une DLL à être 32 bits. C'est un binaire Win32 ou un binaire Win64. Le premier type de binaire peut être chargé dans les processus Win32, le second dans les processus Win64. Vous ne pouvez pas les mélanger. Les attributs sur l'importation Visual Basic n'aident pas. Donc, votre seule option est de démarrer le binaire Excel 32 bits. Il doit exister, évidemment, depuis Office est toujours disponible pour Vista 32, mais la question est de savoir si elle est installée et où.

+0

Il n'y a pas d'Excel 64 bits, il exécute Excel 32 bits. – JonnyBoats

+0

Vous avez raison. Mon erreur. Il n'y a pas de version 32bit d'Excel donc ma question est fausse. J'ai lu des articles parlant de 32 bits vs 32 bits DLL problèmes et il semblait que c'était mon problème. –

2

Vous avez une mauvaise hypothèse - Office n'est actuellement pas disponible en 64 bit. La prochaine version de bureau (Office 2010) est censé être livré avec 32 bits &.

Questions connexes