Bonjour,
D'avance désolé si cette question vous semble idiote ou déjà vue 42.357 fois, mais j'ai beau faire le tour des posts sur le sujet, je ne trouve pas vraiment la réponse adéquate.
Je développe en Java (non, non, je ne me suis pas trompé de forum, je vous assure), et je dois utiliser une dll qu'on me fournit. Pour faire ça, le principe est de créer une dll interface qui fera le lien entre la dll fournie et mon programme Java.
J'ai développé cette dll sous Windows XP et j'ai quelques soucis lors de son utilisation sous Windows 2000.
Pour y remédier :
- j'ai essayé de compiler ma dll en mode "Use MFC in a static library" plutôt qu'en mode "Use MFC in a shared library" => pas d'améliorations.
- j'ai essayé de modifier les paramètres de génération, et donc de passer de Multithreaded à toutes les autres options, mais à ce moment-là j'ai des erreurs de compil... (et je n'ai pas vraiment cherchés à les résoudre, ne sachant pas si ça ferait marcher ma dll et m'étant déjà suffisamment arraché les cheveux là-dessus)
- j'ai regardé les dépendances de ma dll via l'utilitaire fourni avec Visual Studio. J'obtiens cette liste :
c:\windows\system32\ADVAPI32.DLL
c:\windows\system32\COMCTL32.DLL
c:\windows\system32\COMDLG32.DLL
c:\windows\system32\GDI32.DLL
c:\windows\system32\KERNEL32.DLL
c:\windows\system32\MSVCRT.DLL
c:\windows\system32\NTDLL.DLL
c:\windows\system32\OLE32.DLL
c:\windows\system32\OLEAUT32.DLL
c:\windows\system32\OLEDLG.DLL
c:\windows\system32\OLEPRO32.DLL
c:\windows\system32\RPCRT4.DLL
c:\windows\system32\SHELL32.DLL
c:\windows\system32\SHLWAPI.DLL
c:\windows\system32\USER32.DLL
c:\windows\system32\WINSPOOL.DRV
- j'ai récupéré le vcredist_x86.exe dont on parle dans la FAQ mais je ne l'ai pas encore installé car je ne pense pas que ça puisse m'aider étant donné les dépendances trouvées.
Or comme sous Windows 2000 les fichiers sont placés sous c:\winnt\system32 et que les versions des fichiers dépendants ne sont pas les mêmes, je me demandais si mon problème pouvait venir de là ou pas. Qu'est-ce que vous en pensez?
Si ça vient de là, comment puis-je ajouter ces dll à la dll que je crée? (je n'ai pas trouvé l'utilitaire vcredist)?
Suis-je obligé de remplacer les fichiers existants sur le PC cible par les fichiers que j'ai sur mon PC?
Est-ce que ça ne risque pas de "déstabiliser" le poste cible?
Dois-je recompiler ma dll sous un poste possédant Windows 2000? Auquel cas, la dll sera-t-elle toujours dépendante du système? (fonctionnera-t-elle sous 2000 et plus sous XP)
Je débute vraiment dans la création et l'utilisation de dll, alors n'importe quel indication me sera précieuse.
Merci d'avance.
Partager