3 Fragen zu C++
-
Hallo zusammen,
Ich habe 3 Fragen zu C++, ich hoffe ihr könnt mir etwas auf die Sprünge helfen.
Wie kann ich innerhalb eines LPTSTR nach einem bestimmten Zeichen suchen (in meinem Falle wäre dies ein "$")?
Kann ich ermitteln, ob der laufende Prozess unter dem Local Service läuft (also aktuell kein Benutzer eingeloggt ist)?
Ich habe eine COM/ATL DLL gebaut und dort einige Funktionen verwendet, welche erst ab Windows 2000 laufen. Unter Windows 98 muss die DLL allerdings ebenfalls funktionieren. Gibt es eine Möglichkeit Header und Funktionen je nach Windows Version einzubinden? Wenn ich die DLL jetzt registrieren möchte (via regsvr32) scheitert dies unter Windows 98 mit einem Fehler...
Vielen Dank für eure Hife

Gruss
-
edelweiss0 schrieb:
Wie kann ich innerhalb eines LPTSTR nach einem bestimmten Zeichen suchen (in meinem Falle wäre dies ein "$")?
Versuch's mal mit strchr() bzw. seinem TCHAR-Äqivalent _tcschr().
-
Vielleicht hilft dir das hier zum Thema Windows-Version weiter.
http://support.microsoft.com/kb/320479/en-us
Die Seite hat zwar ein etwas anderes Thema, aber dort werden defines wie WINVER angesprochen. Ich denke, anhand dieser defines solltest du unterscheiden können, ob du schon auf einem NT-System oder auf Win98 bist. Hoffe ich zumindest, ausprobiert habe ich es noch nie. Je nachdem könntest du dann unterschiedliche Header einbinden.
Gruß Matze
-
Danke euch Beiden

Das mit dem "Suchen" des Charakters hat wunderbar geklappt.
Nur mit dem versionsabhängigen Einbinden von libs und Funktionen bin ich nicht wirklich gestiegen... Vielleicht kann mir dies noch jemand schlüsslig erklären?
-
Kann mir da wirklich niemand helfen? Kann mir fast nicht vorstellen, dass ich der Erste sein soll, welcher Funktionen verwendet die im einen Betriebssystem bereits integriert ist und beim Anderen noch nicht...

Noch zur Info: Ich möchte keine 2 Versionen einer DLL haben, das macht die Setuproutine nur komplex und ist in der Firma hier so oder so nicht zugelassen...
-
Nur zu allererst: Ich würde WIN98 in keinem Fall mehr unterstützen.
Du musst in deisem Fall die Funktionen die nicht unterstützt werden per GetProcAddress aus der entsprechenden Ziel DLL ermittlen. Den Funktionszeiger mekrst Du Dir und verwendest ihn.
Wenn das OS diese Funktion nicht kann, musst Du diese Funktion entsprechend in Deinem Code ersetzen.
-
Danke für deine Antwort

Leider muss ich jedoch Windows 98SE noch unterstützen (es gibt für unser Produkt immer noch eine grosse Anzahl Kunden, welche auf Windows 98SE laufen).
Deinen Tipp habe ich mir heute morgen ebenfalls schon einmal durch den Kopf gehen lassen. Mit GetUserNameEx funktioniert dies auch einwandfrei. Jedoch nutze ich ebenfalls noch die Funktionalität von Active Directory (IADsADSystemInfo). Kann ich dies ebenfalls einbauen, ohne das die Registrierung der DLL scheitert?
Gruss
-
Du willst Active Directory verwenden aber Win98 unterstützen... <kopfschüttel>
Na dann muss auch der entsprechende Client installiert sein.
http://www.microsoft.com/downloads/details.aspx?displaylang=de&FamilyID=7c219dcc-ec00-4c98-ba61-fd98467952a8