Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » TCP/IP mit MFC

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
03.08.2004, 16:06 Uhr
mbruening



Hallo Liebe Leute habe hier ein dickes Problem.

Ich muss einen Handscanner über den Comport anschliessen und die Daten zum Scanner bzw vom Scanner über TCP/IP an einen Linuxrechner schicken.
Das Prog vom Scanner läuft nur mit MFC so nun muss ich also "nur" noch dieTCP/IP Kiste in den Griff kriegen.
Habe da aber mein Hauptproblem ich kriege die Verbindung einfach nicht an den Start.

Ich schreibe mal den Code hier rein hoffe das mir noch zu helfen ist.

testscanDlg.h


C++:
// testscanDlg.h : Header-Datei
//
//{{AFX_INCLUDES()
#include "resource.h"
#include "plserver.h"
//}}AFX_INCLUDES

#if !defined(AFX_TESTSCANDLG_H__1EA03D2D_7693_444B_BDEC_DC336C66D3EC__INCLUDED_)
#define AFX_TESTSCANDLG_H__1EA03D2D_7693_444B_BDEC_DC336C66D3EC__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class CPlserver;

class CTestscanDlg : public CDialog
{
// Konstruktion
public:
    CTestscanDlg(CWnd* pParent = NULL);    // Standard-Konstruktor

// Dialogfelddaten
    //{{AFX_DATA(CTestscanDlg)
    enum { IDD = IDD_TESTSCAN_DIALOG };
    CListBox    m_tcp;
    CPLServer    m_pl;
    //}}AFX_DATA

    // Vom Klassenassistenten generierte Überladungen virtueller Funktionen
    //{{AFX_VIRTUAL(CTestscanDlg)
    protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV-Unterstützung
    //}}AFX_VIRTUAL

// Implementierung
protected:
    HICON m_hIcon;

    // Generierte Message-Map-Funktionen
    //{{AFX_MSG(CTestscanDlg)
    virtual BOOL OnInitDialog();
    afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
    afx_msg void OnPaint();
    afx_msg HCURSOR OnQueryDragIcon();
    afx_msg void OnDataArrivedPlserverctrl3(long id, short frameid);
    afx_msg void OnSelchangeTcp();
    DECLARE_EVENTSINK_MAP()
    //}}AFX_MSG
    DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ fügt unmittelbar vor der vorhergehenden Zeile zusätzliche Deklarationen ein.

#endif // !defined(AFX_TESTSCANDLG_H__1EA03D2D_7693_444B_BDEC_DC336C66D3EC__INCLUDED_)




testscanDlg.cpp


C++:
// testscanDlg.cpp : Implementierungsdatei
//

#include "stdafx.h"
#include "testscan.h"
#include "testscanDlg.h"
#include "plserver.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif


class CAboutDlg : public CDialog
{
public:
    CAboutDlg();

// Dialogfelddaten
    //{{AFX_DATA(CAboutDlg)
    enum { IDD = IDD_ABOUTBOX };
    //}}AFX_DATA

    // Vom Klassenassistenten generierte Überladungen virtueller Funktionen
    //{{AFX_VIRTUAL(CAboutDlg)
    protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV-Unterstützung
    //}}AFX_VIRTUAL

// Implementierung
protected:
    //{{AFX_MSG(CAboutDlg)
    //}}AFX_MSG
    DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
    //{{AFX_DATA_INIT(CAboutDlg)
    //}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
    CDialog::DoDataExchange(pDX);
    //{{AFX_DATA_MAP(CAboutDlg)
    //}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
    //{{AFX_MSG_MAP(CAboutDlg)
        // Keine Nachrichten-Handler
    //}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTestscanDlg Dialogfeld

CTestscanDlg::CTestscanDlg(CWnd* pParent /*=NULL*/)
    : CDialog(CTestscanDlg::IDD, pParent)
{
    //{{AFX_DATA_INIT(CTestscanDlg)
        // HINWEIS: Der Klassenassistent fügt hier Member-Initialisierung ein
    //}}AFX_DATA_INIT
    // Beachten Sie, dass LoadIcon unter Win32 keinen nachfolgenden DestroyIcon-Aufruf benötigt
    m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CTestscanDlg::DoDataExchange(CDataExchange* pDX)
{
    CDialog::DoDataExchange(pDX);
    //{{AFX_DATA_MAP(CTestscanDlg)
    DDX_Control(pDX, IDC_TCP, m_tcp);
    DDX_Control(pDX, IDC_PLSERVERCTRL3, m_pl);
    //}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CTestscanDlg, CDialog)
    //{{AFX_MSG_MAP(CTestscanDlg)
    ON_WM_SYSCOMMAND()
    ON_WM_PAINT()
    ON_WM_QUERYDRAGICON()
    ON_LBN_SELCHANGE(IDC_TCP, OnSelchangeTcp)
    //}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTestscanDlg Nachrichten-Handler

BOOL CTestscanDlg::OnInitDialog()
{
    CDialog::OnInitDialog();

    // Hinzufügen des Menübefehls "Info..." zum Systemmenü.

    // IDM_ABOUTBOX muss sich im Bereich der Systembefehle befinden.
    ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
    ASSERT(IDM_ABOUTBOX < 0xF000);

    CMenu* pSysMenu = GetSystemMenu(FALSE);
    if (pSysMenu != NULL)
    {
        CString strAboutMenu;
        strAboutMenu.LoadString(IDS_ABOUTBOX);
        if (!strAboutMenu.IsEmpty())
        {    
            pSysMenu->AppendMenu(MF_SEPARATOR);
            pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
        }
    }

    // Symbol für dieses Dialogfeld festlegen. Wird automatisch erledigt
    //  wenn das Hauptfenster der Anwendung kein Dialogfeld ist
    SetIcon(m_hIcon, TRUE);            // Großes Symbol verwenden
    SetIcon(m_hIcon, FALSE);        // Kleines Symbol verwenden
    
    // ZU ERLEDIGEN: Hier zusätzliche Initialisierung einfügen
    
    return TRUE;  // Geben Sie TRUE zurück, außer ein Steuerelement soll den Fokus erhalten
}

void CTestscanDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
    if ((nID & 0xFFF0) == IDM_ABOUTBOX)
    {
        CAboutDlg dlgAbout;
        dlgAbout.DoModal();
    }
    else
    {
        CDialog::OnSysCommand(nID, lParam);
    }
}

// Wollen Sie Ihrem Dialogfeld eine Schaltfläche "Minimieren" hinzufügen, benötigen Sie
//  den nachstehenden Code, um das Symbol zu zeichnen. Für MFC-Anwendungen, die das
//  Dokument/Ansicht-Modell verwenden, wird dies automatisch für Sie erledigt.

void CTestscanDlg::OnPaint()
{
    if (IsIconic())
    {
        CPaintDC dc(this); // Gerätekontext für Zeichnen

        SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

        // Symbol in Client-Rechteck zentrieren
        int cxIcon = GetSystemMetrics(SM_CXICON);
        int cyIcon = GetSystemMetrics(SM_CYICON);
        CRect rect;
        GetClientRect(&rect);
        int x = (rect.Width() - cxIcon + 1) / 2;
        int y = (rect.Height() - cyIcon + 1) / 2;

        // Symbol zeichnen
        dc.DrawIcon(x, y, m_hIcon);
    }
    else
    {
        CDialog::OnPaint();
    }
}

// Die Systemaufrufe fragen den Cursorform ab, die angezeigt werden soll, während der Benutzer
//  das zum Symbol verkleinerte Fenster mit der Maus zieht.
HCURSOR CTestscanDlg::OnQueryDragIcon()
{
    return (HCURSOR) m_hIcon;
}

BEGIN_EVENTSINK_MAP(CTestscanDlg, CDialog)
    //{{AFX_EVENTSINK_MAP(CTestscanDlg)
    ON_EVENT(CTestscanDlg, IDC_PLSERVERCTRL3, 1 /* DataArrived */, OnDataArrivedPlserverctrl3, VTS_I4 VTS_I2)
    //}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()

void CTestscanDlg::OnDataArrivedPlserverctrl3(long id, short frameid)
{
    // TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen
    
}


void CTestscanDlg::OnSelchangeTcp()
{
    // TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen
    
}



habe gedacht das hier mehr reinpasst.
wohl getäuscht echt peinlich so was versuche es auf anderem weg (nur wichtige teile zu Posten)

Dieser Post wurde am 03.08.2004 um 16:34 Uhr von mbruening editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: