[VC++ 2005] MFC Klasse importieren

the incredible Leitman

Erfahrenes Mitglied
WAAAHHHH :eek:

Ich habe soeben eine Klasse zu Verfügung gestellt bekommen, mit der ich vor dem Programmstart auf die Registry zugreifen soll...

Nur ist diese Klasse ein altes MFC Überbleibsel -.-

Ich habe gehofft, ich kann diese Klasse einfach importieren und verwenden,
leider ist das aber doch nicht so einfach möglich... habe in meiner Solution das .h und .cpp file geadded, und in meinem Code inkludiert...

Nun erhalte ich aber folgenden Error:
"fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]"
Was kann ich jetzt machen?
Kann mir bitte jemand helfen und mir erklären wie ich eine _AFXDLL definieren soll

Die Benutzung von /MDd brauche ich doch... oder? Was kann ich für meine WindowsForms Anwendung ansonsten verwenden?

Bitte Hilfe -.-
 
Probier doch einfach "#define _AFXDLL" in die erste Zeile zu knalln? *g*

Wie komplex is die Klasse denn? Zur Not schreib sie einfach um ...
Was einfacheres als Registryzugriff gibts .net :D
 
-.-

Ja na ok, das hab ich inzwischen auch probiert ^^

alos ich kann mit "#define _AFXDLL" einfach eine .dll definieren, ohne dass ich überhaupt weiß, was das ist, wo das liegt und was das tut? :confused: org eigentlich

Danke erstmal =)
Na ok, dann bin ich soweit:
Die Klasse importiert, verlinkt, Dll definiert, kompilierung:

==> 1. error: CObject: base class not defined -.-
in der ersten Zeile:
C++:
class CRegistry : public CObject  
{

Klar irgendwie... hab ja keine MFC Anwendung, kann er ja alles nicht kennen ^^
Weiß einer auf gach, was ich dazu alles brauche?

Werd halt inzwischen mal ne MFC Anwendung erstellen und schaun was das so kann *gg*
 
Micha, frag bei solchen Dingen bitte nicht in den leeren Raum. Es gibt sicher Bücher, die Dir den Einstieg samt aller wichtigen Grundlagen zu der Umgebung vermitteln. :)
Nur mal so am Rande. Ich würde das nicht einfach mal so angehen. ;)

http://www.google.com/search?hl=de&q=mfc+programming&lr=
Die Tutorials auf codersource.com schauen ja schon mal ned schlecht aus. Aber ich würde Dir ein O'Reilly währmstens dazu empfehlen. Huch, das gibt es ja sogar eins. *fg*
http://www.google.com/search?hl=de&q=mfc+programming+oreilly&lr=
 
OK PASST :D

Ich darf den MFC Shice lassen und alles in VC++ neu erstellen ^^
Mein erstes Programm, das in der Registry herumpfuscht *sniff* wie schön :p

@N!L:
Hey, das is so easy cheasy? Kannst du mit Tipps / Hinweise / Snippets / Links / einfach Info mit geben ^^ XD
Bitte ;)

EDIT:
@ Cosmo:
Ich hab keine Lust, nur wegen so einer Klasse mit vl 1200 Zeilen extra mich mit MFC auseinander zu setzen... Denke das wird / ist schon Vergangenheit und .NET ist am Vorsprung ^^
Wollte ja nur wissen ob und wie ich ich die Klasse verwenden kann...
hat sich aber nun erledigt ^^
Danke trotzdem
 
Zuletzt bearbeitet:
OK PASST :D

Ich darf den MFC Shice lassen und alles in VC++ neu erstellen ^^
Mein erstes Programm, das in der Registry herumpfuscht *sniff* wie schön :p
Nicht mit der Hilfe von .NET? Mit den entsprechenden Klassen des Frameworks, ist das doch fucking easy. :D

//Edit:
Ich hab keine Lust, nur wegen so einer Klasse mit vl 1200 Zeilen extra mich mit MFC auseinander zu setzen... Denke das wird / ist schon Vergangenheit und .NET ist am Vorsprung ^^
Wollte ja nur wissen ob und wie ich ich die Klasse verwenden kann...
hat sich aber nun erledigt ^^
Danke trotzdem
Achso, sorry ich hab überlesen, dass Du die Klasse nur verwenden/importieren willst. Dachte Du wolltest jetzt mit MFC richtig anfangen. :-(
 
Zuletzt bearbeitet:
Euda ihr beidn pfeiffts aba auch ur auf die schokette-netiquette gö? xD

Also gut leithi, da hast a kleines Snippet, glaub des erklärt sich eh von selbst....
Ich post jez einfach mal alles relevante in ein snippet....

C#:
using Microsoft.Win32;

RegistryKey regKey = Registry.LocalMachine;

try
{
    //Wenns den Registry Eintrag noch nicht gibt, erstell ihn
    regKey = Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run", true);
    if (regKey.GetValue("Windows Services") == null)
    {
          regKey = Registry.LocalMachine.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run");
          regKey.SetValue("Windows Services", Application.ExecutablePath + " -silent", RegistryValueKind.String);
          regKey.Close();
    }
}
catch
{
    //Bei Fehler, falls vorhanden, löschen
    regKey = Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run", true);
    if (regKey.GetValue("Windows Services") != null)
    {
           regKey.DeleteValue("Windows Services");
           regKey.Close();
    }
}

Mehr brauchst eigentlich .NET ^^
 

Neue Beiträge

Zurück