c++篇 cad.grx 入门,手动配置编译环境

安装

vs2010+vs2010sp1补丁

浩辰2018(64位版本)

浩辰Grx的SDK,注意对应版本年份,解压到E盘目录下, E:grxsdk

      在他们的官方用户群下载,搜sdk, 找到grxsdk2018版本1月.zip....未来可能在官网会提供这些东西的下载方式?

      浩辰的sdk压缩包的名字有点乱七八糟的,下载之后记得检查里面他txt... 

 c++篇 cad.grx 入门,手动配置编译环境

 

说实话,他们的开发文档可能自己都没有试过...

或者太乱七八糟了,在移植的那本写了的内容,在mfc的写了的内容,但是最基础的hello world却是漏写了.....

而且又没有桌子那种 Wizards 不需要手动配置....

所以为了大家,为了我自己....

我决定把这个流程一步步写下去....

 

 

测试项目

启动vs2010

 c++篇 cad.grx 入门,手动配置编译环境

  

 c++篇 cad.grx 入门,手动配置编译环境

 

再右击项目,点添加-新建项

 c++篇 cad.grx 入门,手动配置编译环境

 

c++篇 cad.grx 入门,手动配置编译环境

添加一个cpp,不然属性不出现c/c++的选项!!(下面有截图) 

 

什么都不写,再右击项目,点属性.

c++篇 cad.grx 入门,手动配置编译环境

c++篇 cad.grx 入门,手动配置编译环境

  

开始进入配置:

 c++篇 cad.grx 入门,手动配置编译环境

c++篇 cad.grx 入门,手动配置编译环境

 

 c++篇 cad.grx 入门,手动配置编译环境

新建一个64位的工程…因为我用的是浩辰的64位版本,如果是多个浩辰的版本,就要这里加多一个配置.

 

 c++篇 cad.grx 入门,手动配置编译环境

 

 c++篇 cad.grx 入门,手动配置编译环境 

e:grxsdkincarx

 

 改Debug配置

c++篇 cad.grx 入门,手动配置编译环境

c++篇 cad.grx 入门,手动配置编译环境

 

 c++篇 cad.grx 入门,手动配置编译环境

_TOOLKIT_IN_DLL_  

如果弹出保存就点保存

 

 

 改Release配置

c++篇 cad.grx 入门,手动配置编译环境

 

 c++篇 cad.grx 入门,手动配置编译环境

 

 c++篇 cad.grx 入门,手动配置编译环境

 

然后点确定,生成一次..没错就继续…

  c++篇 cad.grx 入门,手动配置编译环境

 

 c++篇 cad.grx 入门,手动配置编译环境

 

 

再点到项目的属性

 c++篇 cad.grx 入门,手动配置编译环境

e:grxsdklib-x64

 

c++篇 cad.grx 入门,手动配置编译环境

e:grxsdklib-x86

 

c++篇 cad.grx 入门,手动配置编译环境 

e:grxsdkincarxRxExport.def

如果是成功编译,但是无法加载,请检查这个位置是不是设置错了!!

 

c++篇 cad.grx 入门,手动配置编译环境

 grxport.lib;Td_Root.lib;Td_DbRoot.lib;Td_Db.lib;Td_Ge.lib;Td_Gi.lib;Td_Gs.lib;gcad.lib;gcap.lib;gcdb.lib;gced.lib;gcgs.lib;gcut.lib;gcui.lib

 

他们文档里写了这个地方,但是我发现会自设..所以如果配置有问题,要看看下面的地方

[链接器]

[高级]/[目标计算机]设为(32位):MachineX86 (/MACHINE:X86) 会自设

[高级]/[目标计算机]设为(64位):MachineX64 (/MACHINE:X64) 会自设

  

一些配置的错误提示: 

c++篇 cad.grx 入门,手动配置编译环境

 

error LNK2038:

检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(FuckCAD.obj 中)

表示了[c/c++]/ [预处理器]/[预处理器定义],没有删掉_DEBUG

  

 

 在这里,大家就已经配置好了开发环境了,可以再试试加入代码到cpp内,然后重新生成,如果没好,看看下面…

 

.CPP内加的hello world 代码

c++篇 cad.grx 入门,手动配置编译环境

#include <arxHeaders.h>
#include <tchar.h>

void initApp();
void unloadApp();
void HelloWorld();


/// <summary>
/// 加载的时候注册命令
/// </summary>
void initApp()
{
    //register a command with the GstarCAD command mechanism
    acedRegCmds->addCommand(_T("HELLOWORLD_CMDS"), _T("Hello"), _T("Hello"), ACRX_CMD_TRANSPARENT, HelloWorld);
}

/// <summary>
/// 卸载的时候移除命令
/// </summary>
void unloadApp() 
{
    acedRegCmds->removeGroup(L"HELLOWORLD_CMDS");
}


/// <summary>
/// 发送文字到命令栏
/// </summary>
void HelloWorld()
{ 
    acutPrintf(L"nHello World!");
}


// 按着C的规则去翻译相应的函数名而不是C++的 
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;
    default:
        break;
    }
    return AcRx::kRetOK;
}

View Code

 

 

加载

 c++篇 cad.grx 入门,手动配置编译环境

记得不要加载错了,32位和64位,debug,和release的位置各不相同......但是每次开cad都要手动加载很麻烦,怎么办?

 

调试部分:

 c++篇 cad.grx 入门,手动配置编译环境

 

 c++篇 cad.grx 入门,手动配置编译环境

 

然后每次按F5调试,就会自动加载这个grx文件,嘻嘻

 

直接输入命令,不用ap来加载grx了.

c++篇 cad.grx 入门,手动配置编译环境

 

 

MFC篇

他们写教程居然写得那么隐含....

暂时研究失败.....

待续......

 

 

原文链接: https://www.cnblogs.com/JJBox/p/10961690.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    c++篇 cad.grx 入门,手动配置编译环境

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/296045

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月15日 下午5:26
下一篇 2023年2月15日 下午5:27

相关推荐