Zum Inhalt springen

Leana

Mitglieder
  • Gesamte Inhalte

    73
  • Benutzer seit

  • Letzter Besuch

Beiträge von Leana

  1. och mann ich dreh gleich durch.... :)

    bei dem gibt es ne fehlermeldung

    x.*funcp(strProzess, strBack);

    fehlermeldung:

    rror C2064: term does not evaluate to a function

    d:\steffi\systemabfragentest\erweiterungsnapshot\erweiterungsnapshotdlg.cpp(1161) : see reference to function template instantiation 'void __thiscall CSystemInfo::GetActualProcInformation(class CString,int,void (__thiscall CErweiterungSnapSh

    otDlg::*)(class CString,class CString))' being compiled

  2. jetzt bekomm ich ständig linkerfehler

    keine ahnung was falsch ist

    kannst du nochmal drüber gucken

    in der klasse steht

    //öffentliche methoden

    public:

    template <typename returntype, class C>

    void GetActualProcInformation(CString strProzess, int iInfoArt, returntype(C::*funcp)(CString,CString) )

    {

    C x;

    int iStelle = FindPlace(strProzess);

    CString strBack;

    switch(iInfoArt)

    {

    case CPU_AUSLASTUNG:

    strBack = m_ProzessArray[iStelle].GetWert();

    break;

    case VERGANGENE_ZEIT:

    strBack = m_ProzessArray[iStelle].GetTime();

    break;

    case HANDLE_PROZESS:

    strBack = m_ProzessArray[iStelle].GetHandleCount();

    break;

    case P_ID:

    strBack = m_ProzessArray[iStelle].GetProzessID();

    break;

    case THREAD_HANDLE:

    HANDLE = m_ProzessArray[iStelle].GetThreadHandle();

    //strBack

    break;

    default:

    break;

    }

    x.*funcp (strProzess, strBack);

    }

    mein aufruf in der anderen klasse:

    //funktionspointer erstellen

    void (CErweiterungSnapShotDlg::*pfunction)(CString strProzess, CString strWert);

    // jetzt zeigt pfunction auf CallbackFunction

    pfunction = &CErweiterungSnapShotDlg::CallbackFunction;

    CString strProc = m_ListProzesse.GetItemText(0,0);

    m_System.GetActualProcInformation(strProc, 1, pfunction);

    wo liegt der fehler

  3. hallo ich habe eine methode in meiner datenhaltungsklasse, die den paramter einer callbackfunktion bekommen soll.

    in meiner anderen klasse, die diese methode aufrufen soll erstell ich den

    funktionspointer

    //funktionspointer erstellen

    void (CErweiterungSnapShotDlg::*pfunction)(CString strProzess, CString strWert);

    // jetzt zeigt pfunction auf CallbackFunction

    pfunction = &CErweiterungSnapShotDlg::CallbackFunction;

    nun will ich die methode der datenhaltungsklasse aufrufen

    und den funktionspointer übergeben

    mein problem ist, welchen datentyp muss ich denn in die methode reinschreiben für den funktionspointer, es soll allgemein gehalten werden...

    also egal in welcher klasse diese methode aufgerufen wird, es kann immer ein beliebiger funktionspointer mitgegeben werden....

    bitte, kann mir jemand helfen?

  4. hallloooooooooo

    das problem wurde gelöst

    udn wie du eigentlich wissen müsstest, dass wenn man eine variable zu einem ctrl anlegt und diesem einen wert zuweist, dass das dann funktioniert und der wert gleich angezeigt wird ohne update!

    (siehe beschreibung!)

    also ich hab es so beschrieben wie es auch ist, es hat ja nur net unter 98 funktioniert

    also.....

    ich wünsche dir, dass du bald mehr erkenntnisse dazu gewinnst

  5. Also es wird geprüft, ob es 95/98 ist, weil man ab 2000 die CPU Auslastung anders ausgelesen werden muss.

    die Variable m_strGesamtauslastung ist die von meinem Edit Ctrl

    if(m_strVersion != W95 && m_strVersion != W98)

    {

    long lAusgabe = m_System.GetTotalUsage();

    m_strGesamtauslastung.Format("%d", lAusgabe);

    }

    else

    {

    DWORD dwUsage = m_System.GetCPUUsage9x();

    m_strGesamtauslastung.Format("%d",dwUsage);

    }

    unter 2000 funktioniert es, deswegen wundert es mcih ja das es unter 98 nicht geht.

    meine erkenntnisse, dass meine threads funktionieren, habe ich natürlich durch das debuggen unter 98 gewonnen.

    bin ja net blöde, nicht :)

    und ich arbeite ohne updateData(false);

    also kann mir jetzt jemand helfen, bitte!!! :)

  6. ja bin mir sicher, der thread wird gestartet

    wirft regelmäßig seine messages mit den werten

    das fenster fängt die auf

    und schreibt sie auch in die variable von dem editctrl

    daher liegt das wirklich nicht am thread, sondern nur an der ausgabe!

    unter 2000 oder nt schreib ich das auch einfahc in die variable udn es wird angezeigt

    es geht nur nciht unter 98

  7. Also ich hab ein Dialog, auf den mehrere Editfelder sind.

    eins davon wird ständig mit einem neuen wert gefüllt, bzw. sollte es

    ich hab mir hierfür einen thread gebaut!

    mein problem ist, dass sich die werte nicht anzeigen unter 98

    ich hab für dieses editfeld eine CString variable angelegt und weise den wert entsprechen zu.

    unter nt/2000.... funktioniert das ganz einfach

    zuweisen -> und man sieht es am dialog

    unter 98 funktioniert das nicht!!!

    warum?

    mit UpdateData() hab ich es probiert -> fehlermeldung, schluckt er nicht

    oder UpdateWindow() macht gar nichts!!!

    hat jemand dazu ne lösung!?

    ich verzweifel sonst :confused:

  8. Also ich starte aus einer anwendung heraus einige threads!

    die thread id kann ich mir auch merken

    nun möchte ich beim beenden meiner anwendung allen threads sagen, "beende dich"

    nun ist die frage wie ich das machen kann!

    ich müsst ja eigentlich jedem einzelnen thread sagen, ende!

    hat jemand ne ahnung wie das gehen kann!

    ich arbeite mit VC++ 6.0 und mfc

    danke für die hilfe

    :confused:

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...