2009-11-25 5 views
1

J'ai une petite requête, y at-il une modification est nécessaire dans l'utilisation de l'application Desktop C# DLL dans Windows Mobile ?. Je reçois problème comme File or assembly name 'Interop.CDO, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null', or one of its dependencies, was not found.. i ont le code source de DLL de bureau, je ne Nô pas ce que la modification de l'Assemblée que je dois faire pour travailler avec mobile.please me laisser solution ..Utilisation de Desktop C# DLL dans Windows Mobile

Merci à l'avance Grabit

Répondre

0

Le message d'erreur vous obtenez suggère que la DLL n'est pas présente. Si vous avez dépassé cet obstacle, vous n'êtes toujours pas à la maison pour être à la maison - CDO est lié à Outlook/Exchange, donc il est peu probable qu'il fonctionne de façon transparente.

2

Compilez le code source en tant que fichier dll mobile.

Vous pouvez utiliser des fichiers dll mobiles sur le bureau, lorsque le cadre compact est installé. (voir le commentaire de ctacke pour pourquoi)

+3

Le bureau n'a pas besoin de FC installé à consommer un ensemble de FC. Les assemblées des FC sont reciblables et exécutées dans le cadre complet. – ctacke

+0

Merci ctacke. – EKS

0

Pouvez-vous vérifier que Interop.CDO est disponible sur votre plateforme mobile? Ou qu'il est compatible avec l'environnement mobile

+0

j'ai cherché mais je n'ai pas l'espoir que Interop.CDO est pris en charge pour Windows Mobile .. y at-il des alternatives pour cet espace de noms? – Naruto

+0

Si ce n'est pas supporté, alors vous devriez réécrire votre code afin qu'il ne dépende pas de cette fonctionnalité. – Graviton

1

Vous ne pouvez pas utiliser CDO sur un périphérique mobile. Le "goo" en dessous n'est tout simplement pas là, donc même si vous avez en quelque sorte obtenu ce recompilé pour l'appareil (ce que je doute que vous puissiez faire de toute façon) cela ne vous ferait toujours rien. Que diriez-vous de nous dire quel problème vous essayez de résoudre plutôt que comment vous avez déjà décidé (à tort) de le résoudre.

+0

Hé, le problème est ... je dois télécharger la page Web entière (Images, feuilles de style, scripts) dans Windows Mobile..Mais je connais une technique qui est d'obtenir le HTML et analyser et télécharger chaque lien. la consommation et la mise en œuvre est compliquée .. Au lieu de cela, je suis à la recherche de bibliothèques ou d'interfaces qui aident à télécharger la page entière sous forme d'archive .. donc ce sera facile je le sens.CDO que j'ai vu, en utilisant tout ce webapeg peut être archivé au format .Mht.Mais en mobile ce n'est pas supporté: - (... – Naruto

0

étapes pour créer la DLL en C++ pour Windows Mobile:

1) Fichier> Nouveau> Projet ...> Visual C++> Smart Device> Win32 intelligent périphérique projet

2) Ecrire un nom le projet et cliquez sur OK.

3) Suivant> Insérer besoin SDKs (comme WM5 et WM6)> Suivant> Cliquez sur DLL> Terminer

4) Faites un clic droit sur le dossier source et sélectionnez Ajouter> Nouveau

5) Trouvez def nom de fichier le même que le nom de la DLL et cliquez sur OK.

Maintenant en def Vous devez écrire quelque chose comme ceci:

LIBRARY "dllName" 

EXPORTS 

exactFunctionName1      DATA 
exactFunctionName2      DATA 

In dllName.cpp You need to add those two methods (exactFunctionName1, exactFunctionName2) and write code for them. 
You don't need to state more then a method names in def (plus <tab><tab>DATA next to name). 

Where to place the DLL after builiding to make use of it in my C# project 

It must be placed next to Your app or in Windows folder of Your device. 
To get methods from that library just do the following in C#: 

using System.Runtime.InteropServices; 

[DllImport("dllName.dll")] 
private static extern anyReturnType exactFunctionName1(anyArgumentType argumentName); 

So as an example let's get arithmethic sum form myMath.dll: 

[DllImport("myMath.dll")] 
private static extern int sum(int first, int second); 

Those methods can be also public but they still require "static extern". 

Following example in C++ side You'll have this: 

In myMath.cpp: 

INT sum(INT first, INT second) 
{ 
    return first + second; 
} 

In myMath.def: 

LIBRARY "myMath" 

EXPORTS 

sum   DATA 

Source:

http://social.msdn.microsoft.com/Forums/en-US/windowsmobiledev/thread/98e60ab6-aecf-4399-a5be-4937ec40aac9

Questions connexes