| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1539 人关注过本帖
标题:老师给的程序看不懂求大神
只看楼主 加入收藏
yaoyaosu007
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2015-4-12
结帖率:0
收藏
 问题点数:0 回复次数:1 
老师给的程序看不懂求大神
// ArxMFC.cpp : Defines the initialization routines for the DLL.
//
 
#include "stdafx.h"
#include <afxdllx.h>
#include "ArxMFC.h"
#include "ArxMFCdlg.h"
#include "AcExtensionModule.h"
 
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
 
extern "C" HWND adsw_acadMainWnd();
AC_IMPLEMENT_EXTENSION_MODULE(theArxDLL);
 
void dialogCreate()
{
    ArxMFCdlg dlg(CWnd::FromHandle(adsw_acadMainWnd()));
    int nReturnValue=dlg.DoModal();
}
 
static void initApp()
{
    CAcModuleResourceOverride resOverride;
    acedRegCmds->addCommand(_T("ACUISAMPLE"),_T("arxmfc"),_T("arxmfc"),ACRX_CMD_MODAL,dialogCreate,NULL,-1,theArxDLL.ModuleResourceInstance());
}
 
void unloadApp()
{
    acedRegCmds->removeGroup(_T("ACUISAMPLE"));
}
 
extern "C" int APIENTRY
DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{
    UNREFERENCED_PARAMETER(lpReserved);
 
    if (dwReason == DLL_PROCESS_ATTACH)
    {
        theArxDLL.AttachInstance(hInstance);
    }
    else if (dwReason == DLL_PROCESS_DETACH)
    {
        theArxDLL.DetachInstance();
    }
    return 1;
}
 
extern "C"
AcRx::AppRetCode acrxEntryPoint(AcRx::AppMsgCode msg,void* pkt)
{
    switch(msg)
    {
    case AcRx::kInitAppMsg:
        acrxDynamicLinker->unlockApplication(pkt);
        acrxDynamicLinker->registerAppMDIAware(pkt);
        initApp();
        break;
    case AcRx::kUnloadAppMsg:
        unloadApp();
        break;
    case AcRx::kInitDialogMsg:
        break;
    }
    return AcRx::kRetOK;
}
搜索更多相关主题的帖子: include 
2015-04-12 12:59
AleTiff
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:64
专家分:157
注 册:2015-3-30
收藏
得分:0 
这是个 DLL 单元代码。

DLL:动态链接库,是提供给其他程序使用的函数库。

这个代码里,DllMain() 是这个单元的主函数。不过,DLL的主函数大多数没什么事情要做的,这个代码也不例外。

关键的代码都在 acrxEntryPoint() 函数里。仔细对照看一看,因为这只是一个片段代码,我只知道这个代码,首先利用函数
registerAppMDIAware(),注册了一个数据结构,然后调用 initApp() 函数添加了一个命令和一个回调函数 dialogCreate(),
这个回调函数会创建一个模态对话框。

就这么多。
2015-04-13 12:53
快速回复:老师给的程序看不懂求大神
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.080473 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved