Laden...

Object dauerhaft casten

Erstellt von Thorsten1983 vor 18 Jahren Letzter Beitrag vor 18 Jahren 1.456 Views
T
Thorsten1983 Themenstarter:in
147 Beiträge seit 2005
vor 18 Jahren
Object dauerhaft casten

Hallo Community,

habe mal ne kurze und bestimmt auch einfache Frage, ich habe eine Anwendugn entwickelt, die sowohl mit, als auch ohne PocketPC, verwendet werden können soll.

Die Anwendung beinhaltet einen Verweis auf die OpenNetCF.Desktop.Communication Bibliothek.

Mein Problem besteht darin, dass falls ein Kunde keinen PocketPC (also auch kein ActiveSync) hat, gibt es unter windows im SystemFolder die rapi.dll nicht.

logisch! ist ja auch kein Problem einfach mit FileExists abgefangen.

Jetzt habe ich aber einen Klassenmember von Typ OpenNet.Desktop.Communication.RAPI welcher (wie der Name erahnen lässt) bei der Instanzierung auf die rapi.dll aus dem windows system32 folder zugreift.

Folge >> Messagebox von OpenNet CF !!

jetzt habe ich den KlassenMember als object deklariert. Und wollte diesen dann nachher einfach dauerhaft in einen OpenNet.Desktop.Communication.RAPI Member casten. Die Lösung ist bestimmt einfach allerdings komm ich net drauf.

Hoffe jemand hat ne Idee.

Schon mal THX

1.271 Beiträge seit 2005
vor 18 Jahren

Also ich würde sagen, eine neue Variable vom Typ OpenNet.Desktop.Communication.RAPI erstellen, und in diese Variable casten. Anders dürfte es nicht gehen.

A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee

Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.

S
8.746 Beiträge seit 2005
vor 18 Jahren

Original von Thorsten1983
habe mal ne kurze und bestimmt auch einfache Frage, ich habe eine Anwendugn entwickelt, die sowohl mit, als auch ohne PocketPC, verwendet werden können soll.

[...]

Mein Problem besteht darin, dass falls ein Kunde keinen PocketPC (also auch kein ActiveSync) hat, gibt es unter windows im SystemFolder die rapi.dll nicht.

Äh, was hat denn der Benutzer, wenn er keinen PocketPC hat? Luft? Normales Windows.

Man kann keine Anwendungen entwickeln, die sowohl auf dem PocketPC als auch auf normalem Windows laufen, zumindest nicht ohne reichlich IfDefs und Recompilation.

T
Thorsten1983 Themenstarter:in
147 Beiträge seit 2005
vor 18 Jahren

ne das ist eine Applikation die auf dem Desktop läuft und als Addon gibt es noch eine PocketPC version der Software.

Habe das Problem einfach umgangen, indem ich den member als object deklariert habe, dann habe ich geguckt ob ActiveSync vorhanden ist und es sich um eine PocketPC lizenz handelt.
Ist dies der Fall, habe ich einfach das Object in OpenNet...RAPI gecastet und an eine Methode weitergegeben die die benötigten Operateionen für mich macht.

THX nochmal

S
8.746 Beiträge seit 2005
vor 18 Jahren

Dir ist aber schon klar, dass eine CF-Applikation (exe) nicht unter normalem .NET läuft und umgekehrt..... Grund sind die verschiedenen Framework-Referenzen.

CF und normales .NET sind allenfalls sourcecode-kompatibel.

T
Thorsten1983 Themenstarter:in
147 Beiträge seit 2005
vor 18 Jahren

ja klar 🙂

es gibt folgende Varianten des Programms

DESKTOP <--> POCKETPC

Hierbei kommunizieren die beiden Anwendungen über OpenNetCF

dann gibt es

DESKTOP

Reine Desktop anwendung

und es gibt

POCKETPC  

Reine PocketPC Anwendung  

Physikalisch sind es 2 Projekte 1x .Net Framework und 1x Compact Framework

jedes Programm schaut selbst nach in welcher Variante es vorliegt.