Gmail Calendar Docs Reader La Web Más »
Grupos visitados recientemente | Ayuda | Acceder
Página principal de Grupos de Google
求助:关于调用wx写的动态库的问题
En este grupo hay demasiados temas que deben mostrarse primero. Para que este aparezca al principio de la lista, debes descartar esta opción para alguno de los anteriores.
Error al procesar tu solicitud. Por favor, inténtalo de nuevo.
marcar
  4 mensajes - Ocultar todos  -  Traducir todo al Traducido (ver todos los originales)
El grupo al cual envías entradas es un grupo Usenet. Si envías mensajes a este grupo, cualquier usuario de Internet podrá ver tu dirección de correo electrónico
Tu respuesta no se ha enviado.
Tu entrada se ha publicado correctamente.
 
De:
Para:
Cc:
Seguimiento:
Añadir Cc | Añadir seguimiento | Editar asunto
Asunto:
Validación:
Con fines de verificación, escribe los caracteres que veas en la imagen siguiente o los números que escuches haciendo clic en el icono de accesibilidad. Escucha y escribe los números que oyes.
 
wonderful3  
Ver perfil   Traducir al Traducido (ver original)
 Más opciones 9 nov 2009, 07:06
De: "wonderful3" <wonderf...@126.com>
Fecha: Mon, 9 Nov 2009 20:06:29 +0800
Local: Lun 9 nov 2009 07:06
Asunto: 求助:关于调用wx写的动态库的问题

请教一下:
我用wx写了一个简单的dll动态库,代码如下:
<1.h>
#pragma once
#include "wx/wx.h"
#include "windows.h"
#ifdef FROMDLL_EXPORTS
#define FROMDLL_API __declspec(dllexport)
#else
#define FROMDLL_API __declspec(dllimport)
#endif
class wxDLLApp : public wxApp
{   public:
        bool OnInit();

};

class  __declspec(dllexport)  MyDialog : public wxDialog
{
public:
    MyDialog(wxWindow* parent=0, const wxString& title=_("HelloKity"));
~MyDialog();
protected:
    void OnClose(wxCloseEvent& event);
    DECLARE_EVENT_TABLE()
};

--------------------------------------------------------------------------- -
<.cpp>
#include <wx/wx.h>
#include <wx/string.h>
#include <wx/frame.h>
#include "1.h"
class CMyApp : public wxApp
{
public:
    bool OnInit();
};

IMPLEMENT_APP_NO_MAIN(CMyApp)
DECLARE_APP(CMyApp)
BOOL APIENTRY DllMain(HMODULE Module,DWORD Reason,LPVOID)
{
        if(Reason==DLL_PROCESS_DETACH)
        {
                wxEntryCleanup();
        }
        else if(Reason==DLL_PROCESS_ATTACH)
        {
                int argc = 0;
                char** argv = NULL;
                if(!wxEntryStart(argc, argv) ||
                        !wxTheApp ||
                        !wxTheApp->CallOnInit())
                {
                        return FALSE;
                }
        }

        return TRUE;

}

bool CMyApp::OnInit()
{        
    return true;
};

BEGIN_EVENT_TABLE(MyDialog, wxDialog)
   EVT_CLOSE(MyDialog::OnClose)
END_EVENT_TABLE()
void MyDialog::OnClose(wxCloseEvent &ev)
{
Close(true);
}

MyDialog::MyDialog(wxWindow* parent, const wxString& title )
       : wxDialog(parent, -1, title, wxDefaultPosition, wxDefaultSize,wxDEFAULT_FRAME_STYLE|wxFRAME_NO_TASKBAR|wxFRAME_FLOAT_ON_PAR ENT)
{
}

MyDialog::~MyDialog()
{}

在调用dll的应用程序(wxFrame)中加入:
#include "1.h"
#pragma comment(lib,"1.lib")

在初始化函数中加入:
MyDialog *dlg = new MyDialog(frame);
dlg->Show();

程序运行后,产生一个Frame,在Frame上面产生一个Dialog , 但是我去关闭Dialog却关不掉,如果直接关闭Frame,两个一起关掉,但是此应用程序的进程还是存在,并且CPU一直会耗到100%,这个问题研究了好久 都没成功,还望大侠们指点。

2009-11-09

wonderful3


    Reenviar  
Debes registrarte antes de enviar mensajes.
Para enviar una entrada, antes deberás formar parte del grupo.
Antes de enviar entradas, actualiza tu alias en la configuración de la suscripción.
No dispones del permiso necesario para enviar entradas.
Liu Yu Gang  
Ver perfil   Traducir al Traducido (ver original)
 Más opciones 9 nov 2009, 19:52
De: Liu Yu Gang <liu...@yahoo.cn>
Fecha: Tue, 10 Nov 2009 08:52:56 +0800
Local: Lun 9 nov 2009 19:52
Asunto: Re: [wxChinese] 求助:关于调用wx写的动态库的问题


MyDialog *dlg = new MyDialog(frame);
dlg->Show();

dialog 应当这样用吧

MyDialog dlg(frame)
dlg.ShowModal()



Best regards

Liu Yu Gang
liuyug@yahoo.cn

-----------------------------------------
Thunderbird + Gnupg + Enigmail = PGP/MIME


wonderful3 wrote:
请教一下:
我用wx写了一个简单的dll动态库,代码如下:
<1.h>
#pragma once 
#include "wx/wx.h" 
#include "windows.h" 
#ifdef FROMDLL_EXPORTS 
#define FROMDLL_API __declspec(dllexport) 
#else 
#define FROMDLL_API __declspec(dllimport) 
#endif 
class wxDLLApp : public wxApp 
{   public: 
        bool OnInit(); 
};
class  __declspec(dllexport)  MyDialog : public wxDialog 
public: 
    MyDialog(wxWindow* parent=0, const wxString& title=_("HelloKity")); 
~MyDialog();
protected: 
    void OnClose(wxCloseEvent& event); 
    DECLARE_EVENT_TABLE() 
};
----------------------------------------------------------------------------
<.cpp>
#include <wx/wx.h>
#include <wx/string.h> 
#include <wx/frame.h> 
#include "1.h"
class CMyApp : public wxApp 
public: 
    bool OnInit(); 
}; 
IMPLEMENT_APP_NO_MAIN(CMyApp) 
DECLARE_APP(CMyApp) 
BOOL APIENTRY DllMain(HMODULE Module,DWORD Reason,LPVOID) 
        if(Reason==DLL_PROCESS_DETACH) 
        { 
                wxEntryCleanup(); 
        } 
        else if(Reason==DLL_PROCESS_ATTACH) 
        { 
                int argc = 0; 
                char** argv = NULL; 
                if(!wxEntryStart(argc, argv) || 
                        !wxTheApp || 
                        !wxTheApp->CallOnInit()) 
                { 
                        return FALSE; 
                } 
        } 
        
        return TRUE; 
bool CMyApp::OnInit() 
{        
    return true; 
}; 
BEGIN_EVENT_TABLE(MyDialog, wxDialog) 
   EVT_CLOSE(MyDialog::OnClose) 
END_EVENT_TABLE() 
void MyDialog::OnClose(wxCloseEvent &ev) 
Close(true); 
MyDialog::MyDialog(wxWindow* parent, const wxString& title ) 
       : wxDialog(parent, -1, title, wxDefaultPosition, wxDefaultSize,wxDEFAULT_FRAME_STYLE|wxFRAME_NO_TASKBAR|wxFRAME_FLOAT_ON_PARENT) 
MyDialog::~MyDialog()
{}
 
 
在调用dll的应用程序(wxFrame)中加入:
#include "1.h"
#pragma comment(lib,"1.lib")
 
在初始化函数中加入:
MyDialog *dlg = new MyDialog(frame);
dlg->Show();
 
 
程序运行后,产生一个Frame,在Frame上面产生一个Dialog , 但是我去关闭Dialog却关不掉,如果直接关闭Frame,两个一起关掉,但是此应用程序的进程还是存在,并且CPU一直会耗到100%,这个问题研究 了好久都没成功,还望大侠们指点。
 
2009-11-09

wonderful3


__________________________________________________ 赶快注册雅虎超大容量免费邮箱? http://cn.mail.yahoo.com

    Reenviar  
Debes registrarte antes de enviar mensajes.
Para enviar una entrada, antes deberás formar parte del grupo.
Antes de enviar entradas, actualiza tu alias en la configuración de la suscripción.
No dispones del permiso necesario para enviar entradas.
wei yongjian  
Ver perfil   Traducir al Traducido (ver original)
 Más opciones 9 nov 2009, 22:09
De: wei yongjian <weiyj...@yahoo.com>
Fecha: Mon, 9 Nov 2009 19:09:51 -0800 (PST)
Local: Lun 9 nov 2009 22:09
Asunto: Re: [wxChinese] 求助:关于调用wx写的动态库的问题


void MyDialog::OnClose(wxCloseEvent &ev) 

Close(true); 



中把Close(true); 去掉,  Close会产生wxCloseEvent 事件,  所以CPU会100%, 另外加上 myparent->SetFocus();
 // 关闭自己
 Destroy();

即就是:

void MyDialog::OnClose(wxCloseEvent &ev) 

         // 在MyDialog增加wxWindow* myparent; 并在构造中 myparent = parent;
         myparent->SetFocus();
        
         // 关闭自己
        Destroy();

}

________________________________
From: wonderful3 <wonderf...@126.com>
To: wxchinese <wxchinese@googlegroups.com>
Sent: Mon, November 9, 2009 8:06:29 PM
Subject: [wxChinese] 求助:关于调用wx写的动态库的问题

请教一下:
我用wx写了一个简单的dll动态库,代码如下:
<1.h>
#pragma once 
#include "wx/wx.h" 
#include "windows.h" 
#ifdef FROMDLL_EXPORTS 
#define FROMDLL_API __declspec(dllexport) 
#else 
#define FROMDLL_API __declspec(dllimport) 
#endif 
class wxDLLApp : public wxApp 
{   public: 
        bool OnInit(); 

};

class  __declspec(dllexport)  MyDialog : public wxDialog 

public: 
    MyDialog(wxWindow* parent=0, const wxString& title=_("HelloKity")); 
~MyDialog();
protected: 
    void OnClose(wxCloseEvent& event); 
    DECLARE_EVENT_TABLE() 
};

--------------------------------------------------------------------------- -
<.cpp>
#include <wx/wx.h>
#include <wx/string.h> 
#include <wx/frame.h> 
#include "1.h"
class CMyApp : public wxApp 

public: 
    bool OnInit(); 
}; 

IMPLEMENT_APP_NO_MAIN(CMyApp) 
DECLARE_APP(CMyApp) 
BOOL APIENTRY DllMain(HMODULE Module,DWORD Reason,LPVOID) 

        if(Reason==DLL_PROCESS_DETACH) 
        { 
                wxEntryCleanup(); 
        } 
        else if(Reason==DLL_PROCESS_ATTACH) 
        { 
                int argc = 0; 
                char** argv = NULL; 
                if(!wxEntryStart(argc, argv) || 
                        !wxTheApp || 
                        !wxTheApp->CallOnInit()) 
                { 
                        return FALSE; 
                } 
        } 
        
        return TRUE; 


bool CMyApp::OnInit() 
{        
    return true; 
}; 

BEGIN_EVENT_TABLE(MyDialog, wxDialog) 
   EVT_CLOSE(MyDialog::OnClose) 
END_EVENT_TABLE() 
void MyDialog::OnClose(wxCloseEvent &ev) 

Close(true); 


MyDialog::MyDialog(wxWindow* parent, const wxString& title ) 
       : wxDialog(parent, -1, title, wxDefaultPosition, wxDefaultSize,wxDEFAULT_FRAME_STYLE|wxFRAME_NO_TASKBAR|wxFRAME_FLOAT_ON_PAR ENT) 



MyDialog::~MyDialog()
{}

在调用dll的应用程序(wxFrame)中加入:
#include "1.h"
#pragma comment(lib,"1.lib")

在初始化函数中加入:
MyDialog *dlg = new MyDialog(frame);
dlg->Show();

程序运行后,产生一个Frame,在Frame上面产生一个Dialog , 但是我去关闭Dialog却关不掉,如果直接关闭Frame,两个一起关掉,但是此应用程序的进程还是存在,并且CPU一直会耗到100%,这个问题研究了好久 都没成功,还望大侠们指点。
 
2009-11-09
________________________________

wonderful3

__________________________________________________
赶快注册雅虎超大容量免费邮箱?
http://cn.mail.yahoo.com


    Reenviar  
Debes registrarte antes de enviar mensajes.
Para enviar una entrada, antes deberás formar parte del grupo.
Antes de enviar entradas, actualiza tu alias en la configuración de la suscripción.
No dispones del permiso necesario para enviar entradas.
wonderful3  
Ver perfil   Traducir al Traducido (ver original)
 Más opciones 10 nov 2009, 02:26
De: "wonderful3" <wonderf...@126.com>
Fecha: Tue, 10 Nov 2009 15:26:35 +0800
Local: Mart 10 nov 2009 02:26
Asunto: Re: [wxChinese] Re: 求助:关于调用wx写的动态库的问题

谢谢了,但是按照你的方法写出来后,程序一运行就崩溃掉了。

2009-11-10

wonderful3

发件人: wei yongjian
发送时间: 2009-11-10  11:10:07
收件人: wxchinese
抄送:
主题: [wxChinese] Re: 求助:关于调用wx写的动态库的问题


void MyDialog::OnClose(wxCloseEvent &ev)
{
Close(true);

}

中把Close(true); 去掉,  Close会产生wxCloseEvent 事件,  所以CPU会100%, 另外加上 myparent->SetFocus();
 // 关闭自己
 Destroy();

即就是:

void MyDialog::OnClose(wxCloseEvent &ev)
{
         // 在MyDialog增加wxWindow* myparent; 并在构造中 myparent = parent;
         myparent->SetFocus();

         // 关闭自己
        Destroy();

}

From: wonderful3 <wonderf...@126.com>
To: wxchinese <wxchinese@googlegroups.com>
Sent: Mon, November 9, 2009 8:06:29 PM
Subject: [wxChinese] 求助:关于调用wx写的动态库的问题

请教一下:
我用wx写了一个简单的dll动态库,代码如下:
<1.h>
#pragma once
#include "wx/wx.h"
#include "windows.h"
#ifdef FROMDLL_EXPORTS
#define FROMDLL_API __declspec(dllexport)
#else
#define FROMDLL_API __declspec(dllimport)
#endif
class wxDLLApp : public wxApp
{   public:
        bool OnInit();

};

class  __declspec(dllexport)  MyDialog : public wxDialog
{
public:
    MyDialog(wxWindow* parent=0, const wxString& title=_("HelloKity"));
~MyDialog();
protected:
    void OnClose(wxCloseEvent& event);
    DECLARE_EVENT_TABLE()
};

--------------------------------------------------------------------------- -
<.cpp>
#include <wx/wx.h>
#include <wx/string.h>
#include <wx/frame.h>
#include "1.h"
class CMyApp : public wxApp
{
public:
    bool OnInit();
};

IMPLEMENT_APP_NO_MAIN(CMyApp)
DECLARE_APP(CMyApp)
BOOL APIENTRY DllMain(HMODULE Module,DWORD Reason,LPVOID)
{
        if(Reason==DLL_PROCESS_DETACH)
        {
                wxEntryCleanup();
        }
        else if(Reason==DLL_PROCESS_ATTACH)
        {
                int argc = 0;
                char** argv = NULL;
                if(!wxEntryStart(argc, argv) ||
                        !wxTheApp ||
                        !wxTheApp->CallOnInit())
                {
                        return FALSE;
                }
        }

        return TRUE;

}

bool CMyApp::OnInit()
{        
    return true;
};

BEGIN_EVENT_TABLE(MyDialog, wxDialog)
   EVT_CLOSE(MyDialog::OnClose)
END_EVENT_TABLE()
void MyDialog::OnClose(wxCloseEvent &ev)
{
Close(true);
}

MyDialog::MyDialog(wxWindow* parent, const wxString& title )
       : wxDialog(parent, -1, title, wxDefaultPosition, wxDefaultSize,wxDEFAULT_FRAME_STYLE|wxFRAME_NO_TASKBAR|wxFRAME_FLOAT_ON_PAR ENT)
{
}

MyDialog::~MyDialog()
{}

在调用dll的应用程序(wxFrame)中加入:
#include "1.h"
#pragma comment(lib,"1.lib")

在初始化函数中加入:
MyDialog *dlg = new MyDialog(frame);
dlg->Show();

程序运行后,产生一个Frame,在Frame上面产生一个Dialog , 但是我去关闭Dialog却关不掉,如果直接关闭Frame,两个一起关掉,但是此应用程序的进程还是存在,并且CPU一直会耗到100%,这个问题研究了好久 都没成功,还望大侠们指点。

2009-11-09

wonderful3

__________________________________________________
赶快注册雅虎超大容量免费邮箱?
http://cn.mail.yahoo.com


    Reenviar  
Debes registrarte antes de enviar mensajes.
Para enviar una entrada, antes deberás formar parte del grupo.
Antes de enviar entradas, actualiza tu alias en la configuración de la suscripción.
No dispones del permiso necesario para enviar entradas.
Fin de los mensajes
« Volver a “Debates” « Tema más reciente     Tema anterior »

Crear un grupo - Grupos de Google - Página principal de Google - Condiciones del servicio - Política de privacidad
©2010 Google