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篇

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

    暂时研究失败.....

    待续......

     

  • 相关阅读:
    JVM系列-001-JVM监控工具
    Java8-CompletableFuture
    Java8-ConcurrentUtils
    Java8-LongAccumulator
    Java8-Atomic
    Java8-ConcurrentHashMap
    Java8-Synchronized-No.02
    Java8-Synchronized-No.01
    Java8-Executors-No.03
    Java8-Executors-No.02
  • 原文地址:https://www.cnblogs.com/JJBox/p/10961690.html
Copyright © 2011-2022 走看看