lilin 发表于 2003-10-21 11:24:00

[[我在调试objectarx\samples\mfcsamps\contextmenu程序时,没能看到dsw文件,只看见了好多cpp文件,于是我在vc下新建了dll工程,然后将contextmenu目录下的这些.h和.cpp和.rc和.rc2拷到了新建的目录下,该替换的我已替换掉,但我在rebuild all时,出现了一个错误:
arxmfctmpl.cpp(14):error c2065:'arxMFCDLL':undeclared indentifier
arxMFCDLL在哪里定义阿?怎么定义阿?]]

//My result
你这样作是不对的,你只拷贝了源文件,在VC的程序配置中。你没有拷贝过去(他包括许多lib文件和其它文件)。所以在动态编译是出现了错误。你只需要直接打开源文件代码的DSW或者DSP文件即可。也可以直接用向导创建。

如果要比较前一种和后一种的不同,只需分别打开两个WORKSPACE,然后按前面的方法分别打开(创建)工程,然后对比PROJIECT下的SETTING中的选项即可。
祝你好运!
对了,除开在特别情况下用你上面的操作,一般是用向导创建一个工程!·

lilin 发表于 2003-10-21 11:36:00

[我在调试objectarx\samples\mfcsamps\contextmenu程序时,没能看到dsw文件,只看见了好多cpp文件,于是我在vc下新建了dll工程,然后将contextmenu目录下的这些.h和.cpp和.rc和.rc2拷到了新建的目录下,该替换的我已替换掉,但我在rebuild all时,出现了一个错误:
arxmfctmpl.cpp(14):error c2065:'arxMFCDLL':undeclared indentifier
arxMFCDLL在哪里定义阿?怎么定义阿?]

//////////////////////////////////////////
不能,因为你没有把*.LIB拷贝过去,所以在动态编译的时候会出现错误的。
//
正确的做法时直接打开DSW或者DSP文件;或者用向导创建。
//
在ARX DESIGN中,一定要养成用向导创建工程,除非你对他的LIB包含文件特别熟悉。
//
希望对你有用

huangyhg 发表于 2003-10-22 20:59:00

哦。你知道gps啊?我到现在也没搞明白。
越看问题越多,好像gps语言是一种语言,如同程序设计语言,我要用gps的话,就好像要应做个编译器,该对图纸里的各几何要素进行规范,要符合gps语言里的”语法“才行,反之,得像vc编译器一样报错才行啊!
这个是不是工程庞大?若只对尺寸和公差标注进行规范,是否简单许多?
我最近装了个visual assist6.0,很好用,我想编译器太难了点,做成这种visual assist,倒不错!可行吗?给点建议?

lilin 发表于 2003-10-22 21:21:00

visual assist6.0 用来做什么的?我不会用,所以也不能给你什么建议了!
gps最重要的是对数据的解析。

lilin 发表于 2003-10-22 21:25:00

你知道怎么用vc 自动加载菜单文件吗?
用到的函数为ACEDCOMMAND,命令为MENU,但是我照常规的方法则不能加载

greenlight 发表于 2003-10-24 17:04:00

CMenu *newMenu =currMenuGroup->append(...........);//
CMenu没有append()这个成员函数,是不是AppendMenu();
但他的返回值是BOOL,怎样往下添加popmenu的每一项呢?

lilin 发表于 2003-10-25 18:19:00

把第UINT类型的参数做如下的转换:
CMenu *pMenu = new CMenu;
pMenu->LoadMenu(ID);
currMenuGroup->AppendMenu(,UNIT(pMenu->句柄),);
//这样就可以了
//试试吧,pMenu 可以是多级菜单

greenlight 发表于 2003-10-27 20:19:00

我试了还是不行,以下是我的代码
void addmenu()
{
        CMenu *currMenuGroup,*newMenu;
        BOOL en=0;
        currMenuGroup=acedGetAcadFrame()->GetMenu();
        if(currMenuGroup==NULL){
                AfxMessageBox("can't get menu");
                return ;
        }
        newMenu=new CMenu;
        newMenu->LoadMenu(IDR_MENU1);
        en=currMenuGroup->AppendMenu(MF_POPUP,UINT(newMenu->m_hMenu));
        if(en!=TRUE)
                AfxMessageBox("\nappend menu error");
        else
                AfxMessageBox("\nappend menu ok");
       
}
请大侠帮忙看看,编译运行都没错,en也返回TRUE,但菜单仍没显示

huangyhg 发表于 2003-10-27 21:26:00

lilin,最近我好傻,忘了还需点下一页,所以一直都没能看到您的留言。
.mnu文件,直接将acad.mnu替换掉就行了,我只会这个好傻的办法。

huangyhg 发表于 2003-10-27 21:34:00

lilin,你说的是加载菜单,还是菜单响应文件?
嘿嘿,你可以去清华bbs上问问,那里有个cad技术专栏,人气还比较旺
huangyhg:781400
页: 1 [2] 3
查看完整版本: AcadMenuGroup是什么?