Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Com/atl

Empfohlene Antworten

Veröffentlicht

Guten Morgen.

Ich habe ein kleine Problem. Ich fange grade an mich mit COM zu beschäftigen. also habe ich das Tutorial von Microsoft verwendet.

Walkthrough: Creating a COM Server Using Wizards

soweit so gut. Beim Testclient habe ich dann ein Problem. Ich bekomme an der stell (spUnknown.QueryInterface(&pI);) immer einen Fehler. &pI zeigt auf eine Addresse und in der steht nur (0x0000000) drin.

Dort bekomme ich dann immer folgende Fehlermeldung:

Unbehandelte Ausnahme bei 0x001a3e09 in COMTest.exe: 0xC0000005:

Zugriffsverletzung beim Lesen an Position 0x00000000

System:

Windows Vista

Visual studio 2008

C++

Danke schonmal.


#include "stdafx.h"

#include <iostream>

#include "atlbase.h"

#import ".\MyServer\MyServer.tlb" no_namespace


using namespace std;


struct OleCom {

      OleCom() { CoInitialize(NULL);}

      ~OleCom() { CoUninitialize(); }

   }olecom;

   int _tmain(int argc, _TCHAR* argv[])

   {

      CComPtr<IUnknown> spUnknown;

      spUnknown.CoCreateInstance(__uuidof(Object1));

      CComPtr<IObject1> pI;

      spUnknown.QueryInterface(&pI);         //fehler

      short res = 0;

      pI->get_GetANum(&res);

      cout << res << endl;

      return 0;

   }

ja ok das ist ja kein Problem, aber warum findet er bei mir den com-server nicht?

ja ok das ist ja kein Problem, aber warum findet er bei mir den com-server nicht?
Keine Ahnung. Wie sind denn die Rückgabewerte? Wenn du die für dich behältst, erschwert das die Diagnose.

Möglicherweise ist der Server gar nicht registriert? Dafür brauchst du unter Vista und Windows 7 Administratorrechte.

Danke

Mein Problem war Vista.(Toll dafür nen halben Tag verschwendet).:rolleyes:

Auf meinem XP-Rechner läuft es ohne Probleme :D

Das Führt mich zu meiner nächsten Frage:

Wie bekomme ich es hin das sich mein COM-server unter Vista registriert?

Ist es möglich die Registrierung direkt im Programmcode einzufügen?

Danke

Wie bekomme ich es hin das sich mein COM-server unter Vista registriert?
Führ die Registrierung als Administrator aus.

Ist es möglich die Registrierung direkt im Programmcode einzufügen?
In welchem Programmcode? Im Server? Wenn das eine DLL ist, hast du ein Henne-Ei-Problem.

Ansonsten geht das natürlich, aber UAC wird sich melden. Wenn man einfach so im Programm Dinge tun könnte, die Adminrechte erfordern, wäre das Ganze ja ziemlich witzlos.

nein ist keine DLL.

hast du zufällig ein beispiel parat mit dem es möglich ist UAC zu umgehen?

Oder muss ich zum testen immer ein setup erstellen und meinen server dann zum testen immer neu installieren?(das sollte ja das Problem umgehen, wär mir aber zu aufwendig)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.