<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[DLL nur als Admin nutzbar]]></title><description><![CDATA[<p>Hi,</p>
<p>ich hoffe damit bei WinAPI richtig zu sein:</p>
<p>In meiner Anwendung registriere ich eine DLL mit</p>
<pre><code class="language-cpp">typedef int (__stdcall* fDllRegisterServer) (); 
    HINSTANCE hInst; 
    hInst = LoadLibrary(&quot;C:\\Debug\\split.dll&quot;); 
    fDllRegisterServer fdreg = GetProcAddress(hInst, &quot;DllRegisterServer&quot;);     
    int res = fdreg (); 

    FreeLibrary(hInst);
</code></pre>
<p>Nun habe ich das Problem, dass in meiner Anwendung der Zugriff auf<br />
diese vermeintlich registrierte DLL nicht funktioniert. Soll heißen<br />
ich habe nicht die nötigen Rechte (Fehler 0x80070005).</p>
<p>Unter &quot;run as&quot; und dann als Administrator funktioniert alles bestens.<br />
Aber ich kann den normalen User schlecht so vor dem Problem stehen<br />
lassen. Ich verwende VS2008 und das Programm läuft momentan auf<br />
Win2003 RC2/SP2 Standard Edition.</p>
<p>Welche Möglichkeiten habe ich noch, das Problem anzupacken?<br />
regsvr32 als Benutzer bringt den o.g. Fehler, wobei ich als Admin<br />
ja schon erfolgreich die DLL registriert habe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/227914/dll-nur-als-admin-nutzbar</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 00:00:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/227914.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 21 Nov 2008 13:36:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to DLL nur als Admin nutzbar on Fri, 21 Nov 2008 13:36:21 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich hoffe damit bei WinAPI richtig zu sein:</p>
<p>In meiner Anwendung registriere ich eine DLL mit</p>
<pre><code class="language-cpp">typedef int (__stdcall* fDllRegisterServer) (); 
    HINSTANCE hInst; 
    hInst = LoadLibrary(&quot;C:\\Debug\\split.dll&quot;); 
    fDllRegisterServer fdreg = GetProcAddress(hInst, &quot;DllRegisterServer&quot;);     
    int res = fdreg (); 

    FreeLibrary(hInst);
</code></pre>
<p>Nun habe ich das Problem, dass in meiner Anwendung der Zugriff auf<br />
diese vermeintlich registrierte DLL nicht funktioniert. Soll heißen<br />
ich habe nicht die nötigen Rechte (Fehler 0x80070005).</p>
<p>Unter &quot;run as&quot; und dann als Administrator funktioniert alles bestens.<br />
Aber ich kann den normalen User schlecht so vor dem Problem stehen<br />
lassen. Ich verwende VS2008 und das Programm läuft momentan auf<br />
Win2003 RC2/SP2 Standard Edition.</p>
<p>Welche Möglichkeiten habe ich noch, das Problem anzupacken?<br />
regsvr32 als Benutzer bringt den o.g. Fehler, wobei ich als Admin<br />
ja schon erfolgreich die DLL registriert habe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1618333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1618333</guid><dc:creator><![CDATA[Variant]]></dc:creator><pubDate>Fri, 21 Nov 2008 13:36:21 GMT</pubDate></item><item><title><![CDATA[Reply to DLL nur als Admin nutzbar on Fri, 21 Nov 2008 14:41:06 GMT]]></title><description><![CDATA[<p>Was bedeutet registriert?<br />
Was macht die DLL in DllMain?<br />
Verlangt sie evtl. Zugriff auf HKLM?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1618402</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1618402</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Fri, 21 Nov 2008 14:41:06 GMT</pubDate></item><item><title><![CDATA[Reply to DLL nur als Admin nutzbar on Fri, 21 Nov 2008 19:21:26 GMT]]></title><description><![CDATA[<p>Was die DLL in DllMain explizit macht kann ich nicht sagen, da sie dazu gekauft ist und kein Source<br />
bereitgestellt wird. Ich habe lediglich DllRegisterServer gerufen, womit ja soweit mir bekannt, die<br />
DLL (in diesem Fall das ActiveX-Element) im System verankert werden sollte.</p>
<p>Zugriff auf HKLM ist nicht erforderlich. Es handelt sich um eine<br />
gekapselte Lib zur Bearbeitung von PDF-Dokumenten deren Zugriff über ein<br />
ActiveX ermöglicht wird. Ich habe lediglich eine Headerdatei:</p>
<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-227566-and-highlight-is-split.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-227566-and-highlight-is-split.html</a></p>
<p>Mein Test hat aber gezeigt, dass es auch für den normalen User geht, sofern<br />
man die Programmdateien alle z.B. in &quot;Eigene Dateien&quot; oder unter c:\programme<br />
ablegt. Vom Desktop aus will es allerdings aus einem dort abgeworfenen Ordner nicht<br />
gehen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> Ich hoffe die ganze Sache wird von einem gemappten Laufwerk im Netz funktionieren. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
<p>Oder sollte man solche Nutzerübergreifenden Dateien währen der Installation<br />
im Systemordner abwerfen und (ähnlich regsvr32) wie oben beschrieben im<br />
System bekannt machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1618544</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1618544</guid><dc:creator><![CDATA[Variant]]></dc:creator><pubDate>Fri, 21 Nov 2008 19:21:26 GMT</pubDate></item><item><title><![CDATA[Reply to DLL nur als Admin nutzbar on Fri, 21 Nov 2008 19:58:56 GMT]]></title><description><![CDATA[<p>zurückgezogen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1618551</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1618551</guid><dc:creator><![CDATA[CStern]]></dc:creator><pubDate>Fri, 21 Nov 2008 19:58:56 GMT</pubDate></item><item><title><![CDATA[Reply to DLL nur als Admin nutzbar on Fri, 21 Nov 2008 20:39:43 GMT]]></title><description><![CDATA[<p>Die DLL ist wohl eine ActiveX Bibliothek. Und zum Registrieren selbiger sind un mal Administratorenrechte erforderlich. Wenn sie allerdings einmal registriert ist, kann man sie auch mit normalen Bneuterrechten nutzen.</p>
<p>Entweder legst du deinem Programm ein Setup bei, dann ist klar, dass Administratorenrechte benötigt werden, da normlerweise nur Administratoren Programme installieren können sollten oder du weißt den Benutzer daraufhin, dass beim ersten Start Administratorenrechte nötig sind und weißt auch daraufhin warum diese nötig sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1618584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1618584</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Fri, 21 Nov 2008 20:39:43 GMT</pubDate></item><item><title><![CDATA[Reply to DLL nur als Admin nutzbar on Sat, 22 Nov 2008 16:38:46 GMT]]></title><description><![CDATA[<p>Hallo Luckie danke für den Hinweis. Ich habe die DLL als Admin auf einem Testsystem<br />
Win2003 registriert und konnte die Funktionen auch nutzen, allerdings als<br />
ich mich dann als &quot;Normalnutzer&quot; angemeldet habe, war dies nicht mehr möglich.<br />
Leider hab ich das im Büro gemacht, es kann also möglich sein, dass ich das<br />
unsiniger Weise aus einem Ordner auf dem Desktop des Admin registriert habe. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /><br />
Da hat der normale User natürlich keinen Zugriff drauf.</p>
<p>Aber nochmal um Klarheit zu bekommen und noch mehr dazu zu lernen:<br />
Sollte ich die DLL im Systemverzeichnis abwerfen und vom Admin dort registrieren lassen?<br />
So hätte doch jeder Zugriff darauf oder?</p>
<p>Denn meine Anwendung hat gerade den Sinn überall hin verschiebbar zu sein<br />
und dennoch zu funktionieren (sofern auf dem selben PC verschoben).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1618944</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1618944</guid><dc:creator><![CDATA[Variant]]></dc:creator><pubDate>Sat, 22 Nov 2008 16:38:46 GMT</pubDate></item><item><title><![CDATA[Reply to DLL nur als Admin nutzbar on Sun, 23 Nov 2008 11:48:22 GMT]]></title><description><![CDATA[<p>Variant schrieb:</p>
<blockquote>
<p>Aber nochmal um Klarheit zu bekommen und noch mehr dazu zu lernen:<br />
Sollte ich die DLL im Systemverzeichnis abwerfen und vom Admin dort registrieren lassen?<br />
So hätte doch jeder Zugriff darauf oder?</p>
<p>Denn meine Anwendung hat gerade den Sinn überall hin verschiebbar zu sein<br />
und dennoch zu funktionieren (sofern auf dem selben PC verschoben).</p>
</blockquote>
<p>1. Wenn es ein sich um ein COM Objekt handelt muss es normalerweise vom Admin registriert werden.<br />
2. Sofern das COM Objekt selbst nicht Dinge benötigt, die nur ein Admin kann (Schreibzugriff auf HKLM) dann solle es funktionieren. Will die DLL also z.B. Daten in das Verzeichnis schreiben, in dem sie selbst leigt, dann wirst Du in Probleme laufen...<br />
3. Ein COM Modul ist nicht verschiebbar ohne das man es neu registriert.</p>
<p>Du musst uns schon mehr sagen was diese DLL tut.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1619257</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1619257</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Sun, 23 Nov 2008 11:48:22 GMT</pubDate></item><item><title><![CDATA[Reply to DLL nur als Admin nutzbar on Sun, 23 Nov 2008 13:14:05 GMT]]></title><description><![CDATA[<p>Die Beschreibung zur DLL:</p>
<p><a href="http://www.guangmingsoft.net/PDFSplitMerge/index.htm" rel="nofollow">Link zum Anbieter</a></p>
<blockquote>
<p>PDF Split Merge ActiveX Component can split and merge PDF files for you easily.<br />
It is a standalone component and does not depend on Adobe Acrobat, or even Acrobat Reader.</p>
</blockquote>
<p>Die Komponente nutzt zudem eine DLL von <a href="http://www.pdfkit.com" rel="nofollow">http://www.pdfkit.com</a>.</p>
<p>Detailliertere Infos kann ich vermutlich erst morgen geben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1619313</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1619313</guid><dc:creator><![CDATA[Variant]]></dc:creator><pubDate>Sun, 23 Nov 2008 13:14:05 GMT</pubDate></item><item><title><![CDATA[Reply to DLL nur als Admin nutzbar on Sun, 23 Nov 2008 14:25:20 GMT]]></title><description><![CDATA[<p>Eben habe ich mit dem Tool SIW nachgesehen ob überhaupt irgendwas<br />
im System verankert wird, nachdem ich DllRegisterServer gerufen habe.<br />
Ich finde zwar die ClassID zu der DLL, aber welchen Sinn hat das genau?</p>
<p>Die DLL-Funktionen Rufe ich, wenn das CreateDispatch(&quot;PDFSplitMerge.PDFSplitMerge.1&quot;);<br />
bereits besteht einfach mit:</p>
<pre><code class="language-cpp">&lt;membervar&gt;.Split(&quot;syntax&quot;)
</code></pre>
<p>auf. Split die ist eine Funktion der DLL.</p>
<p>Nimmt also die ClassID der Registry die Verbidnung zur DLL auf, oder?</p>
<p>Ist die Rückgabe von CreateDispatch negativ, rufe ich:</p>
<pre><code class="language-cpp">typedef int (__stdcall* fDllRegisterServer) (); 
    HINSTANCE hInst; 
    hInst = LoadLibrary(&quot;C:\\Debug\\split.dll&quot;); 
    fDllRegisterServer fdreg = GetProcAddress(hInst, &quot;DllRegisterServer&quot;);     
    int res = fdreg (); 

    FreeLibrary(hInst);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1619373</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1619373</guid><dc:creator><![CDATA[Variant]]></dc:creator><pubDate>Sun, 23 Nov 2008 14:25:20 GMT</pubDate></item><item><title><![CDATA[Reply to DLL nur als Admin nutzbar on Sun, 23 Nov 2008 14:43:43 GMT]]></title><description><![CDATA[<p>Die ClassId ist der Name über die das COM-Objekt erzeuugt wird.</p>
<p>Du kannst nicht einfach DllRegisterServer aufrufen weil dies eben Einträge in die HKLM macht! Und das geht nur als Admin!<br />
COM Objekte müssen installiert und registriert werden. Die kannst DU nicht einfach als Benutzer durch die Gegend kopieren.</p>
<p>Schau Dich mal nach ClickOnce um...<br />
<a href="http://msdn.microsoft.com/en-us/magazine/cc188708.aspx" rel="nofollow">http://msdn.microsoft.com/en-us/magazine/cc188708.aspx</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1619385</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1619385</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Sun, 23 Nov 2008 14:43:43 GMT</pubDate></item><item><title><![CDATA[Reply to DLL nur als Admin nutzbar on Sun, 23 Nov 2008 19:38:00 GMT]]></title><description><![CDATA[<p>DllRegisterServer rufe ich ja auch nur als Admin. Den Hinweis gibt das<br />
Programm bzw. Installanleitung her.</p>
<p>Nur lief es wohl nicht auf dem Useraccount, weil ich vermutlich die<br />
DLL in einem Ort (auf dem Adminacc.) registriert habe, auf den der<br />
normale User keinen Zugriff hat. Daher meine Frage betreffend System32-Folder.</p>
<p>Was ich vom Hersteller der Dll, oder allgemein, noch nicht verstehe:</p>
<p>Er wird mit einem ActiveX-Element geworben. Haben tue ich doch nur eine DLL,<br />
die registriert wird und dann über die Registry (ClassID) global<br />
verfügbar ist. In den installierten ActiveX-Komponenten des PC ist die<br />
DLL nicht zu sehen. Ich spare mir ja irgendwie jetzt das explizite Laden via<br />
LoadLibrary oder?</p>
<p>Verstanden habe ich das Konzept noch nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /><br />
Vielleicht erklärt es der von dir gepostete Link ja auch, ich mach mich mal ans lesen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Ich bin um jede Erleuchtung dankbar <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1619601</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1619601</guid><dc:creator><![CDATA[Variant]]></dc:creator><pubDate>Sun, 23 Nov 2008 19:38:00 GMT</pubDate></item><item><title><![CDATA[Reply to DLL nur als Admin nutzbar on Sun, 23 Nov 2008 21:02:46 GMT]]></title><description><![CDATA[<p>Ich habe das Gefühl, Du hast COM und ActiveX noch nicht verstanden! Kann das sein?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1619632</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1619632</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Sun, 23 Nov 2008 21:02:46 GMT</pubDate></item><item><title><![CDATA[Reply to DLL nur als Admin nutzbar on Mon, 24 Nov 2008 08:02:48 GMT]]></title><description><![CDATA[<p>Jupp <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1619732</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1619732</guid><dc:creator><![CDATA[Variant]]></dc:creator><pubDate>Mon, 24 Nov 2008 08:02:48 GMT</pubDate></item><item><title><![CDATA[Reply to DLL nur als Admin nutzbar on Mon, 24 Nov 2008 09:08:05 GMT]]></title><description><![CDATA[<p>Variant schrieb:</p>
<blockquote>
<p>Jupp <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
<p>OK! Dan versuche mal die Basics zu verstehen. Dann wirst Du auch merken, warum und wieso was wie geht... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1619763</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1619763</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 24 Nov 2008 09:08:05 GMT</pubDate></item><item><title><![CDATA[Reply to DLL nur als Admin nutzbar on Mon, 24 Nov 2008 10:14:37 GMT]]></title><description><![CDATA[<p>Farf man dich nach einer Buchempfehlung zum Thema fragen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1619800</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1619800</guid><dc:creator><![CDATA[Variant]]></dc:creator><pubDate>Mon, 24 Nov 2008 10:14:37 GMT</pubDate></item><item><title><![CDATA[Reply to DLL nur als Admin nutzbar on Mon, 24 Nov 2008 10:57:45 GMT]]></title><description><![CDATA[<p>Guckst Du:</p>
<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-214710.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-214710.html</a></p>
<p>Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1619823</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1619823</guid><dc:creator><![CDATA[Mmacher]]></dc:creator><pubDate>Mon, 24 Nov 2008 10:57:45 GMT</pubDate></item></channel></rss>