Impossible de charger la DLL 'coredll.dll': Le module spécifié est introuvable. (Sur Windows XP)
Grâce à l'gourous à StackOverflow. Vous êtes géniaux. J'ai posté sur la question sur la détection des temps d'inactivité sur un Compact framework d'application et a obtenu des réponses très rapidement. Quand j'ai essayé la solution proposée sur mon Windows XP de développement de la zone, j'ai cette erreur
Impossible de charger la DLL 'coredll.dll":
module spécifié est introuvable.
(Sur Windows XP)
Après googler pour quelque temps j'ai compris que OpenNETCF les bibliothèques tentent de lancer coredll.dll pour détecter le temps d'inactivité, mais cette dll est shiped uniquement avec système d'exploitation Windows Mobile. Comme nous sommes le développement de l'application sur un ordinateur Windows XP et n'avez pas accès à Windows CE dispositif maintenant, nous sommes frappés par le problème.
Est-il possible de l'coredll.dll sur Windows XP? Toute autre solution à ce problème?
Mis à jour: nous sommes le ciblage de l'application pour un appareil fonctionnant sous Windows Mobile 6 Professionnel
OriginalL'auteur Gopinath | 2009-09-24
Vous devez vous connecter pour publier un commentaire.
Je suis confus. La question a été expressément sur le Compact Framework, qui est pour Windows CE. Si vous n'avez pas votre matériel cible encore, puis utiliser un émulateur.
Dans ce cas précis, le SDF n'est pas P/Invoquant pour ce faire, il utilise un IMessageFilter mise en œuvre. Vous pouvez facilement faire de même pour le bureau.
Mais cela dit, vous ne pouvez tout simplement pas de développer une FC application de ciblage de l'XP. Ce que cela signifie est que si vous créez votre application à l'aide de la plein cadre, en ciblant le bureau, et attendre qu'il suffit d'exécuter lorsque vous obtenez votre appareil CE, vous êtes dans une grosse surprise. Si vous ciblez les deux Systèmes d'exploitation est un des objectifs de conception, puis il y a beaucoup de travail à faire, et la plupart des éléments d'INTERFACE utilisateur n'est pas transférable (j'avais en fait vous recommandons d'utiliser différentes de l'INTERFACE utilisateur des assemblages pour les deux cibles et les communes de la logique métier).
EDIT1
Je suppose, de manière à mieux répondre à la question "puis-je obtenir coredll.dll pour mon bureau?", la réponse est un retentissant "non". Il existe une multitude de raisons pour lesquelles cela ne fonctionne pas (c'est dans la ROM, il est dépendant du matériel, il n'est en fait pas un fichier, mais fixé à exécuter en place, il est compilé pour un système d'exploitation différent, il peut être compilé pour un tout nouveau processeur, etc).
Vous avez deux options. Vous pouvez essayer de créer une version de bureau de coredll.dll que exporté toutes les fonctions que vous voulez et les procurations à l'kernel32, user32, etc Dll. C'est une cargaison de travail (là, essayé).
Vous pourriez essayer de écrire du code qui fonctionne pour les deux plates-formes. C'est faisable, mais aussi très difficile.
Court de il est, sauf si vous devez absolument cible à la fois, vous ne voulez pas essayer. Obtenir un émulateur, virtual PC ou une sorte de eval système, et la cible qu'.
ctacke, merci pour l'info détaillée. Nous ciblons une seule plate-forme. De toutes les solutions proposées, l'obtention d'un émulateur de périphérique semble être la meilleure solution. J'ai essayé les émulateurs lien que vous avez fourni ci-dessus. Il est déjà installé sur mon PC. Comment puis-je obtenir un émulateur qui simule 1000x600 d'affichage?
Le DeviceEmulator 3.0 pilote d'affichage ne supporte pas d'assez de mémoire pour que la résolution (sauf peut-être si vous déposez la couleur de la profondeur, - il a un maximum de framebuffer taille).
OriginalL'auteur ctacke
Vous ne pouvez pas exécuter OpenNetCF dans un PC Windows. Vous avez besoin d'utiliser un émulateur Windows CE. Cela vient avec la Kit de développement Windows CE.
OriginalL'auteur kgiannakakis
Écrire du code qui fonctionne pour les deux plates-formes.
Dans notre solution de tout ce qui va toucher la plate-forme est prélevée à différents objets. Nous avons donc une IPlatformServices objet (qui renvoie des trucs comme IPowerManagement, IPrinter etc) nous avons deux implémentations différentes d'un PCPlatformServices et un CEPlatformServices et celui retourné est basée sur l'Environnement.Il s'valeur. Dans votre scénario, vous voulez 2 différents IdleDetector des objets un par CE, et un pour le Bureau. Aye c'est un peu d'une douleur, d'identifier et de résumé tout cela, mais vous devez faire ce que vous voulez de compatibilité entre les deux plates-formes différentes.
Notre "PCPlatformServices" est principalement se moque dans notre cas, car nous ne voulons bureau compatibilité de tester des choses plus rapidement que ne pas interagir avec le matériel (comme le code de l'application /de la logique métier)
OriginalL'auteur Quibblesome