thread cpu
-
hallo liebe gemeinde,
auch auf die gefahr hin arg belächelt zu werden muss ich fragen, weil es für mich momentan ein massives problem darstellt.
Woher kommt es, dass, wenn ich mein projekt kompiliere, ich keine fehlermeldung bekomme, aber auch nicht meine exe datei, sondern das CPU-Tab aufgeht mit den threads drin und immer eine bestimmete "jmp" anweisung angezeigt ist.
Bisher habe ich es so handhaben können, dass ich dann ein zweites mal kompiliert habe und dann meist meine exe datei erstellt wurde. nun ist es so, dass cih immer in den cpu-tab hineinlaufe.Desweiteren möchte ich gerne wissen, wie ich innerhalb eines Forms auf Daten eines anderen Forms im Pojekt zugreifen kann, also um beispielsweise auf einem sich öffnenden Eigenschaften-Fenster aus dem Hauptprogramm Werte von Komponenten heraus zu ziehen und in EditFelder zu setzen.
EDIT: OK in der FAQ habe ich grade gelesen, dass ich aus dem Hauptprogramm heraus in der anderen Form Dinge setzen kann, also bsp im Mein_cpp sowas schreibe ,wie:Form2->Label1->Caption = "aus dem hauptprogramm";Kann ich das auch andersherum..?
Vielen dank für eure hilfe.
grüße
göck
-
Hallo
goeck schrieb:
Woher kommt es, dass, wenn ich mein projekt kompiliere, ich keine fehlermeldung bekomme, aber auch nicht meine exe datei, sondern das CPU-Tab aufgeht mit den threads drin und immer eine bestimmete "jmp" anweisung angezeigt ist.
Bisher habe ich es so handhaben können, dass ich dann ein zweites mal kompiliert habe und dann meist meine exe datei erstellt wurde. nun ist es so, dass cih immer in den cpu-tab hineinlaufe.Vermutlich weil du F8 anstelle von F9 drückst.
OK in der FAQ habe ich grade gelesen, dass ich aus dem Hauptprogramm heraus in der anderen Form Dinge setzen kann, also bsp im Mein_cpp sowas schreibe ,wie: ...
Kann ich das auch andersherum..?Ja das geht auch andersrum, wenn du es richtig machst.
bis bald
akari
-
Vermutlich weil du F8 anstelle von F9 drückst.
Sorry, ich muss dich enttäuschen...ob ich F9 drücke oder auf das Play-Icon...immer kommt der Thread und bleibt immer an einer JMP anweisung stehen....es ist zum heulen heute....
Danke für eure Hilfe.
Göck
-
Hallo
Dann kann ich mir nur noch vorstellen das dein Code noch während des Initialiseren der Anwendung eine Exception verursacht. Möglicherweise in einem Konstruktor?
bis bald
akari
-
so, da ich immer noch nicht hinter die geheimnisse gekommen bin, werde ich euch mal meine bisherige arbeit zur durchsicht da lassen. Ich hoffe, jemand findet was greifbares...
Main CPP
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Com_Port_1.h" #include "Com_Port_1_Einstellungen.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "VaClasses" #pragma link "VaComm" #pragma link "VaTerminal" #pragma link "VaBuffer" #pragma link "VaSystem" #pragma link "VaControls" #pragma link "VaDisplay" #pragma link "cgauges" #pragma link "cspin" #pragma link "perfgrap" #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { Label3->Caption = ""; } //--------------------------------------------------------------------------- void __fastcall TForm1::ComboBox1Change(TObject *Sender) { VaComm1->DeviceName = "COM"+IntToStr(ComboBox1->ItemIndex+1); VaComm1->PortNum = ComboBox1->ItemIndex+1; VaComm1->Open(); if(VaComm1->Active()) { Button1->Enabled = true; Button2->Enabled = true; Memo1->Lines->Add("COM"+IntToStr(ComboBox1->ItemIndex+1)+" geöffnet"); } else Memo1->Lines->Add("COM "+IntToStr(ComboBox1->ItemIndex+1)+"ist belegt oder existiert nicht."); } //--------------------------------------------------------------------------- void __fastcall TForm1::Close(TObject *Sender, TCloseAction &Action) { VaComm1->Close(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { if (Button1->Caption == "Start") { Button1->Caption="Stop"; // Puffer der Schnittstelle wird geleert VaComm1->Close(); VaComm1->Open(); } else { Button1->Caption="Start"; StatusBar1->SimpleText = "Lesen gestoppt"; } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { if (Button2->Caption == "Start") { Button2->Caption="Stop"; // Wenn Schreiben erfolgreich war, gebe Feedback, wenn nicht, dann neg. Feedback in StatusBar if (VaComm1->WriteText("12")) StatusBar1->SimpleText = "Schreiben erfolgreich"; else StatusBar1->SimpleText = "Schreiben gescheitert"; } else { Button2->Caption="Start"; StatusBar1->SimpleText = "Schreiben gestoppt"; } } //--------------------------------------------------------------------------- void __fastcall TForm1::ComboBox1CloseCom(TObject *Sender) { VaComm1->Close(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Clear1Click(TObject *Sender) { Memo1->Clear(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Speichernunter1Click(TObject *Sender) { SaveDialog1->DefaultExt="txt"; SaveDialog1->Filter = "Text Dateien (*.txt)|*.txt"; SaveDialog1->Execute(); Memo1->Lines->SaveToFile(SaveDialog1->FileName); } //--------------------------------------------------------------------------- void __fastcall TForm1::SendCommand(TObject *Sender, char &Key) { // Wenn Enter gedrückt wurde, wird ein Sendevorgang ausgelöst switch (Key) { case VK_RETURN: { // Wenn Schreiben erfolgreich war, gebe Feedback, wenn nicht, dann neg. Feedback in StatusBar if (VaComm1->WriteText(Label3->Caption)) StatusBar1->SimpleText = "Schreiben erfolgreich"; else StatusBar1->SimpleText = "Schreiben gescheitert"; Key = 0; Memo1->Lines->Append(""); Label3->Caption = ""; } case VK_BACK: Label3->Caption = Label3->Caption + "BACK"; default: { Label3->Caption = Label3->Caption + Key; } } } //--------------------------------------------------------------------------- void __fastcall TForm1::ReceiveMessage(TObject *Sender, const AnsiString Data) { if(Button1->Caption == "Stop") { //Ab jetzt wird aus dem Puffer gelesen AnsiString inTemp = Data; if (inTemp == NULL) StatusBar1->SimpleText = "Lesen gescheitert"; else { // Schreibe alles vom Port kommende auf Memo1 Memo1->Lines->Add(inTemp); int inTempInt = StrToIntDef(inTemp, 333); if (inTempInt == 333) { StatusBar1->SimpleText = "Lesen nicht erfolgreich (StrToInt Error)"; } else { // Beshreibe Graph auf zweitem Tab PerformanceGraph1->DataPoint(clMenuText, inTempInt); PerformanceGraph1->Update(); CGauge1->Progress = inTempInt/10.24; StatusBar1->SimpleText = "Lesen erfolgreich"; } } } } //--------------------------------------------------------------------------- void __fastcall TForm1::Einstellungen1Click(TObject *Sender) { Form2->Edit1->Text = VaCapture1->DataStart; Form2->Edit2->Text = VaCapture1->DataFinish; Form2->ShowModal(); } //---------------------------------------------------------------------------und die der entsprechende Header
//--------------------------------------------------------------------------- #ifndef Com_Port_1H #define Com_Port_1H //--------------------------------------------------------------------------- #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <ComCtrls.hpp> #include <Menus.hpp> #include <XPMan.hpp> #include <ExtCtrls.hpp> #include "VaClasses.hpp" #include "VaComm.hpp" #include "VaTerminal.hpp" #include "VaBuffer.hpp" #include "VaSystem.hpp" #include "VaControls.hpp" #include "VaDisplay.hpp" #include <Dialogs.hpp> #include <ExtDlgs.hpp> #include "cgauges.h" #include "cspin.h" #include "perfgrap.h" #include <TabNotBk.hpp> //--------------------------------------------------------------------------- class TForm1 : public TForm { __published: // Von der IDE verwaltete Komponenten TStatusBar *StatusBar1; TXPManifest *XPManifest1; TLabel *Label1; TLabel *Label2; TComboBox *ComboBox1; TButton *Button1; TButton *Button2; TVaComm *VaComm1; TGroupBox *GroupBox1; TGroupBox *GroupBox2; TTimer *Timer1; TMainMenu *MainMenu1; TMenuItem *Datei1; TMenuItem *Speichernunter1; TMenuItem *panel1; TMenuItem *Clear1; TSaveDialog *SaveDialog1; TLabel *Label3; TTabbedNotebook *TabbedNotebook1; TMemo *Memo1; TPerformanceGraph *PerformanceGraph1; TCGauge *CGauge1; TVaCapture *VaCapture1; TMenuItem *Einstellungen1; void __fastcall ComboBox1Change(TObject *Sender); void __fastcall Close(TObject *Sender, TCloseAction &Action); void __fastcall Button1Click(TObject *Sender); void __fastcall Button2Click(TObject *Sender); void __fastcall ComboBox1CloseCom(TObject *Sender); void __fastcall Clear1Click(TObject *Sender); void __fastcall Speichernunter1Click(TObject *Sender); void __fastcall SendCommand(TObject *Sender, char &Key); void __fastcall ReceiveMessage(TObject *Sender, const AnsiString Data); void __fastcall Einstellungen1Click(TObject *Sender); private: // Benutzer-Deklarationen public: // Benutzer-Deklarationen __fastcall TForm1(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TForm1 *Form1; //--------------------------------------------------------------------------- #endifund hier das ganze für die eingebundene Form
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Com_Port_1_Einstellungen.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm2 *Form2; //--------------------------------------------------------------------------- __fastcall TForm2::TForm2(TComponent* Owner) : TForm(Owner) { TabbedNotebook1->Width = Form2->ClientWidth; TabbedNotebook1->Height = Form2->ClientHeight; } //---------------------------------------------------------------------------header
//--------------------------------------------------------------------------- #ifndef Com_Port_1_EinstellungenH #define Com_Port_1_EinstellungenH //--------------------------------------------------------------------------- #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <ComCtrls.hpp> #include <TabNotBk.hpp> //--------------------------------------------------------------------------- class TForm2 : public TForm { __published: // Von der IDE verwaltete Komponenten TTabbedNotebook *TabbedNotebook1; TLabel *Label1; TEdit *Edit1; TLabel *Label2; TEdit *Edit2; private: // Benutzer-Deklarationen public: // Benutzer-Deklarationen __fastcall TForm2(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TForm2 *Form2; //--------------------------------------------------------------------------- #endifVielen Dank!!!!!
-
Mir ist aufgefallen, dass ich immer bei Aufruf der Datei cc3270mt.dll stehen bleibe. Im debug fenster in der unteren leiste stehen in blauer schrift die aufgerufenen dateien, die laufen beim kompilieren durch und der thread fehler taucht immer erst bei aufruf dieser datei auf. habe auch schon versucht sie zu ersetzen durch einen neue, aber gleiches verhalten.
help!!!
-
Kann es sein, dass dort ein Breakpoint gestzt ist? Geht das Fenster auch auf, wenn du im Release-Modus compilierst?
-
Ich meine, da ist kein Haltepunkt. Ich habe euch mal ein Screenshot gemacht. Wenn ich mal so doof fragen darf..Release Mode heißt, statt F9 nehme ich Shift+Str+F9.