zoukankan      html  css  js  c++  java
  • c++篇 cad.grx 入门,手动配置编译环境

    安装

    vs2010+vs2010sp1补丁

    浩辰2018(64位版本)

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

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

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

     

     

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

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

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

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

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

    测试项目

    启动vs2010

     

      

     

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

     

     

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

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

      

    开始进入配置:

     

     

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

     

     

      

    e:grxsdkincarx

     

     改Debug配置

     

    _TOOLKIT_IN_DLL_  

    如果弹出保存就点保存

     

     

     改Release配置

     

     

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

      

     

     

    再点到项目的属性

     

    e:grxsdklib-x64

     

    e:grxsdklib-x86

     

     

    e:grxsdkincarxRxExport.def

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

     

     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) 会自设

      

    一些配置的错误提示: 

    error LNK2038:

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

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

      

     

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

     

    .CPP内加的hello world 代码

    #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"
    Hello 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

    加载

     

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

     

    调试部分:

     

     

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

     

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

     

     

    MFC篇

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

    暂时研究失败.....

    待续......

     

  • 相关阅读:
    字符串 CSV解析 表格 逗号分隔值 通讯录 电话簿 MD
    Context Application 使用总结 MD
    RxJava RxPermissions 动态权限 简介 原理 案例 MD
    Luban 鲁班 图片压缩 MD
    FileProvider N 7.0 升级 安装APK 选择文件 拍照 临时权限 MD
    组件化 得到 DDComponent JIMU 模块 插件 MD
    gradlew 命令行 build 调试 构建错误 Manifest merger failed MD
    protobuf Protocol Buffers 简介 案例 MD
    ORM数据库框架 SQLite 常用数据库框架比较 MD
    [工具配置]requirejs 多页面,多入口js文件打包总结
  • 原文地址:https://www.cnblogs.com/JJBox/p/10961690.html
Copyright © 2011-2022 走看看