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篇

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

    暂时研究失败.....

    待续......

     

  • 相关阅读:
    16. 3Sum Closest
    17. Letter Combinations of a Phone Number
    20. Valid Parentheses
    77. Combinations
    80. Remove Duplicates from Sorted Array II
    82. Remove Duplicates from Sorted List II
    88. Merge Sorted Array
    257. Binary Tree Paths
    225. Implement Stack using Queues
    113. Path Sum II
  • 原文地址:https://www.cnblogs.com/JJBox/p/10961690.html
Copyright © 2011-2022 走看看