MFC 总结(2)

四:调用dll

1:dll 在不同目录:

typedef DWORD (WINAPI* SETINFO)(LPCTSTR, LPCTSTR, LPCTSTR, DWORD, LPCTSTR, DWORD, DWORD);

HMODULE         hSetCom     =NULL;

SETINFO     SetInfo     =NULL;

hSetCom = LoadLibrary(strComPath);

SetInfo = (SETINFO)GetProcAddress(hSetCom,FUNC_SETMAILINFO);

SetInfo(,,,,,,);

FreeLibrary(hSetCom);

五:线程

ON_MESSAGE(WM_SETUP_THREAD_MSG, OnThreadMessage);

 

SetupInfo   *m_lSetupInfo;

        AfxBeginThread(Setup_GetThread,m_lSetupInfo);

 

UINTSetup_GetThread(LPVOID pParam)

{

//处理过程

::SendMessage(lFax->hWnd, WM_SETUP_THREAD_MSG, GET_INFO, (LPARAM)lset);//消息处理

}

 

LRESULT FaxSetupPage::OnThreadMessage(WPARAM wParam, LPARAM lParam)

{

    switch(wParam)

    {

    case GET_INFO:

        {

            //处理

}

}

五、进程

    STARTUPINFO st;

    ZeroMemory ((void *)& st, sizeof (STARTUPINFO));

    st.cb = sizeof (STARTUPINFO);

    st.dwXSize= 10;

    st.dwYSize= 10;

 

    CString szPath;

    szPath  = pSetupPath;

 

    CString szCommandLine;

    szCommandLine  = _T(" /s");

 

   

    PROCESS_INFORMATION pret;

    if (! CreateProcess ((LPTSTR) (LPCTSTR)szPath, (LPTSTR) (LPCTSTR) szCommandLine, NULL, NULL,

      TRUE, CREATE_DEFAULT_ERROR_MODE | CREATE_NEW_CONSOLE | CREATE_NEW_PROCESS_GROUP | NORMAL_PRIORITY_CLASS,

                          NULL, NULL, & st, & pret))

    {

       

return 0;

    }

    CloseHandle(pret.hThread);

    while (1)

    {

        MSG msg;

        if (MsgWaitForMultipleObjects (1, & pret.hProcess, FALSE, INFINITE, QS_ALLINPUT) == WAIT_OBJECT_0)

            break;

        while (PeekMessage (&msg, NULL, 0, 0, PM_REMOVE))

        {

            TranslateMessage(& msg);

            DispatchMessage (& msg);

        }

    }

    CloseHandle(pret.hProcess);

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值