Herstellen einer Verbindung mit Windows Phone 7 über eine 64-Bit-Anwendung

Ich habe ein 32-Bit-Programm (in C ++ geschrieben), das eine Verbindung zu verschiedenen Geräten herstellen kann, und solange es 32-Bit ist, funktioniert alles einwandfrei. Jetzt muss ich es jedoch als 64-Bit-Programm erstellen, aber dann stieß ich auf einige Probleme mit Windows Phone 7.

Ich habe herausgefunden, dass eine DLL (in C # geschrieben), die ich als 64-Bit-Datei neu erstellt habe, eine Ausnahme in dieser Zeile auslöst:

MultiTargetingConnectivity connectivity = new MultiTargetingConnectivity(CultureInfo.CurrentUICulture.LCID);

Die Ausnahme ist:

An unhandled exception of type 'Microsoft.SmartDevice.Connectivity.DatastoreException' occurred in Microsoft.SmartDevice.Connectivity.dll

Additional information: Retrieving the COM class factory for component with CLSID {349AB2E8-71B6-4069-AD9C-1170849DA64C} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

(Zum Beispiel, wenn ich versuche, @ auszuführedieses Beispielprogramm es funktioniert in 32-Bit aber löst diese Ausnahme in 64-Bit in derselben Zeile aus)

Wenn ich nach dieser CLSID in der Registrierung gesucht habe, habe ich einen Pfad zu "C: \ Programme (x86) \ Gemeinsame Dateien \ Microsoft Shared \ Phone Tools \ CoreCon \ 11.0 \ Bin \ ConMan2.dll" gefunde registriert die DLL mit regsvr32 aber ich bekomme immer noch die gleiche Ausnahme.

AKTUALISIEREN

Da ich möglicherweise eine Problemumgehung erstellen muss, anstatt eine 64-Bit-Version von ConMan2.dll zu finden, veröffentliche ich hier einen Teil meiner aktuellen DLL, wenn mir jemand eine mögliche Problemumgehung anzeigen kann, damit sie sowohl in 32- als auch in 64-Bit-Version funktioniert.

namespace WP7DLL
{
    // Interface declaration.
    [Guid("11111111-1111-1111-1111-111111111111")]
    public interface IWP7DLL
    {
        int GetStatus();
    };

    [ClassInterface(ClassInterfaceType.None)]
    [Guid("22222222-2222-2222-2222-222222222222")]
    public class WP7DLL : IWP7DLL
    {    
        public WP7DLL() { }

        public int GetStatus()
        {
             //Line that gives an exception in 64 bit
             MultiTargetingConnectivity connectivity = new MultiTargetingConnectivity(CultureInfo.CurrentUICulture.LCID);
             ...
             ...           
        }
   }
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage