c++的问题 老师给了段未完成的 看不懂请教下

//ArxMFC.cpp:DefinestheinitializationroutinesfortheDLL.//#include"stdafx.h"#include<a... // 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("ACUISAMPLE","arxmfc","arxmfc",ACRX_CMD_MODAL,dialogCreate,NULL,-1,theArxDLL.ModuleResourceInstance());
}

void unloadApp()
{
acedRegCmds->removeGroup("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;
}
能帮忙完成这个程序吗谢谢
展开
 我来答
dfzow
2008-05-10
知道答主
回答量:12
采纳率:0%
帮助的人:0
展开全部
void dialogCreate()
{
ArxMFCdlg dlg(CWnd::FromHandle(adsw_acadMainWnd()));
int nReturnValue=dlg.DoModal();
}
这个是创建对话框的,如果你按下值为nReturnValue的按钮时摆弄创建一对话框
static void initApp()
{
CAcModuleResourceOverride resOverride;
acedRegCmds->addCommand("ACUISAMPLE","arxmfc","arxmfc",ACRX_CMD_MODAL,dialogCreate,NULL,-1,theArxDLL.ModuleResourceInstance());
}
这段是初始化工程的
void unloadApp()
{
acedRegCmds->removeGroup("ACUISAMPLE");
}
退出工程
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;
这段是一个SWITCH判断,先初始化APP,如果接受的信息是UnloadApp 当然就执行unloadApp,如果接收到InitDialog的话就不执行操作,最后返回kRetOK的值
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式