找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3184|回复: 15

[分享] 传递给Lisp使用的三个进度条函数

[复制链接]
发表于 2013-8-5 19:56:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
传递给Lisp使用的三个进度条函数!
刚开始学arx,有问题之处请各位多多指教!
  1. //进度条初始化
  2. int ProgressInit(struct resbuf *rb)
  3. {
  4.   if (rb == NULL)
  5.   {acdbFail(_T("\n参数太少"));
  6.   acedRetVoid();
  7.   return RTERROR;
  8.   }
  9.   
  10.   ACHAR* str ;
  11.   //ACHAR *sPrompt;
  12.   if (rb->restype != RTSTR)
  13.   {
  14.       acdbFail(_T("\n第1个参数应为提示字串"));
  15.       acedRetVoid();
  16.       return RTERROR;
  17.       //sPrompt = str;

  18.   }
  19.   str = rb->resval.rstring;
  20.   rb = rb->rbnext;
  21.   if (rb == NULL)
  22.   {
  23.     acdbFail(_T("\n参数太少"));
  24.     acedRetVoid();
  25.     return RTERROR;
  26.   }
  27.   long nMaxPos;
  28.   if (rb->restype == RTLONG)
  29.   {
  30.    
  31.     nMaxPos = rb->resval.rlong;
  32.   }
  33.   else
  34.     if (rb->restype == RTSHORT)
  35.     {
  36.       nMaxPos = long(rb->resval.rint);
  37.     }
  38.     else  
  39.     {
  40.       acdbFail(_T("\n第2个参数应为整数"));
  41.       acedRetVoid();
  42.       return RTERROR;

  43.     }
  44.   if (rb->rbnext !=NULL)
  45.   {
  46.     acdbFail(_T("\n参数太多"));
  47.     acedRetVoid();
  48.     return RTERROR;
  49.   }


  50.   acedSetStatusBarProgressMeter(str,0,nMaxPos);
  51.   // TODO: Replace the following line by your returned value if any
  52.   acedRetVoid () ;
  53.   return (RSRSLT) ;
  54. }

  55. //设置进度条位置
  56. int ProgressMeterPos (struct resbuf *rb)
  57. {
  58.   if (rb == NULL)
  59.   {acdbFail(_T("\n参数太少"));
  60.   acedRetVoid();
  61.   return RTERROR;
  62.   }
  63.   long nPos;
  64.   if (rb->restype == RTLONG)
  65.   {
  66.     nPos = rb->resval.rlong;
  67.   }
  68.   else
  69.     if (rb->restype == RTSHORT)
  70.     {
  71.       nPos = long(rb->resval.rint) ;
  72.     }
  73.     else  
  74.     {
  75.       acdbFail(_T("\n参数应为整数"));
  76.       acedRetVoid();
  77.       return RTERROR;

  78.     }
  79.   if (rb->rbnext !=NULL)
  80.   {
  81.     acdbFail(_T("\n参数太多"));
  82.     acedRetVoid();
  83.     return RTERROR;
  84.   }
  85.   acedSetStatusBarProgressMeterPos(nPos);
  86.   acedRetVoid () ;
  87.   return (RSRSLT) ;

  88. }
  89. //进度条终止
  90. int ProgressDone (struct resbuf *rb)
  91. {
  92.   if (rb != NULL)
  93.   {acdbFail(_T("\n参数太多"));
  94.   acedRetVoid();
  95.   return RTERROR;
  96.   }
  97.     acedRestoreStatusBar();
  98.     acedRetVoid () ;
  99.     return (RSRSLT) ;
  100. }

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2013-8-5 20:03:02 | 显示全部楼层
赞一个{:soso_e179:}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-8-5 21:09:25 | 显示全部楼层
俺也顶一个,俺也想学ARX了。好学不,楼主。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-8-5 21:19:19 | 显示全部楼层
一般情况下
int ProgressInit(struct resbuf *rb)

函数定义取LISP参数不要这样写,改成这样

int ProgressInit()
{
    struct resbuf *rb=acedGetArgs();
   
    or

   resbuf *rb=ads_getargs();
   .....
}

因为有些时候的定义外部函数,要限制C++函数不能带参数。

点评

我这几个函数不是向导模式建立的,参数去掉后,编译通不过!  详情 回复 发表于 2013-8-5 23:30
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-5 23:30:37 | 显示全部楼层
本帖最后由 Love-Lisp 于 2013-8-5 23:32 编辑
XDSoft 发表于 2013-8-5 21:19
一般情况下
int ProgressInit(struct resbuf *rb)

我这几个函数不是向导模式建立的,参数去掉后,编译通不过!不知道怎么办哦!请明示!谢谢老大指点!

点评

你把 定义外部函数的部分代码贴上来看看。  详情 回复 发表于 2013-8-5 23:48
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-8-5 23:48:43 | 显示全部楼层
Love-Lisp 发表于 2013-8-5 23:30
我这几个函数不是向导模式建立的,参数去掉后,编译通不过!不知道怎么办哦!请明示!谢谢老大指点!

你把 定义外部函数的部分代码贴上来看看。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-5 23:53:11 | 显示全部楼层
本帖最后由 Love-Lisp 于 2013-8-5 23:55 编辑
XDSoft 发表于 2013-8-5 23:48
你把 定义外部函数的部分代码贴上来看看。

  1. /* Here we define the array of function names and handlers. */
  2. struct func_entry func_table[] =
  3. {
  4.     {_T("LLRX-ProgressInit"), ProgressInit},
  5.   {_T("LLRX-Progress"), ProgressMeterPos},
  6.   {_T("LLRX-ProgressDone"), ProgressDone},
  7.   };




  8. static int funcload();
  9. static int dofun();

  10.   //加载自定义函数
  11. static int funcload()
  12. {
  13.   int i;

  14.   for (i = 0; i < ELEMENTS(func_table); i++) {
  15.     if (!acedDefun(func_table.func_name, (short)i))
  16.       return RTERROR;
  17.   }
  18.   return RTNORM;
  19. }

  20. //执行函数
  21. static int dofun()
  22. {
  23.     struct resbuf *rb;
  24.     int val;

  25.     /* Get the function code and check that it's within range.
  26.        (It can't fail to be, but paranoia doesn't hurt.) */
  27.     if ((val = acedGetFunCode()) < 0 || val >= ELEMENTS(func_table)) {
  28.         acdbFail(_T(/*MSG2*/"Received nonexistent function code."));
  29.         return RTERROR;
  30.     }

  31.     /* Fetch the arguments, if any. */
  32.     rb = acedGetArgs();

  33.     /* Call the handler and return its success-failure status. */
  34.     val = (*func_table[val].func)(rb);
  35.     acutRelRb(rb);
  36.     return val;
  37. }

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-8-6 00:01:14 | 显示全部楼层
一般在主程序的On_kLoadDwgMsg消息处理的时候定义外部函数

  1. virtual AcRx::AppRetCode On_kLoadDwgMsg (void *pkt)
  2. {
  3.       AcRx::AppRetCode retCode =AcRxArxApp::On_kLoadDwgMsg (pkt) ;
  4.       LoadFunctions();
  5.       return AcRx::kRetOK;
  6. }
  7. AcRx::AppRetCode LoadFunctions()
  8. {
  9.         //exportConstants();        //增加API 常量
  10.         int ret;
  11.         int i;
  12.         for (i = 0; i < ELEMENTS(func_table); i++)
  13.         {
  14.                 ret = ads_defun(func_table.func_name, (short)i);
  15.                 if (ret != RTNORM)
  16.                         return AcRx::kRetError;
  17.         }
  18.         // UpdateDLRegistry("xdrx_api",func_table,55);
  19.         // acutPrintf(_T("\n加载API函数成功!"));
  20.         return AcRx::kRetOK;
  21. }

点评

不用向导方式,把进度条函数的struct resbuf *rb 参数去掉,我还是不知道咋改!下面是全部的定义代码,请看看如何改合适?  详情 回复 发表于 2013-8-6 08:51
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-6 08:51:51 | 显示全部楼层
XDSoft 发表于 2013-8-6 00:01
一般在主程序的On_kLoadDwgMsg消息处理的时候定义外部函数

不用向导方式,把进度条函数的struct resbuf *rb 参数去掉,我还是不知道咋改!下面是全部的定义代码,请看看如何改合适?
  1. // (C) Copyright 2002-2005 by Autodesk, Inc.
  2. //
  3. // Permission to use, copy, modify, and distribute this software in
  4. // object code form for any purpose and without fee is hereby granted,
  5. // provided that the above copyright notice appears in all copies and
  6. // that both that copyright notice and the limited warranty and
  7. // restricted rights notice below appear in all supporting
  8. // documentation.
  9. //
  10. // AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
  11. // AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
  12. // MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE.  AUTODESK, INC.
  13. // DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
  14. // UNINTERRUPTED OR ERROR FREE.
  15. //
  16. // Use, duplication, or disclosure by the U.S. Government is subject to
  17. // restrictions set forth in FAR 52.227-19 (Commercial Computer
  18. // Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
  19. // (Rights in Technical Data and Computer Software), as applicable.
  20. //

  21. //-----------------------------------------------------------------------------
  22. //----- acrxEntryPoint.h
  23. //-----------------------------------------------------------------------------
  24. #include "StdAfx.h"
  25. #include  "adslib.h"
  26. #include "resource.h"


  27. //-----------------------------------------------------------------------------
  28. #define szRDS _RXST("LLRX")

  29. /* Utility definition to get an  array's  element  count  (at  compile
  30.    time).   For  example:  

  31.        int  arr[] = {1,2,3,4,5};
  32.        ...
  33.        printf("%d", ELEMENTS(arr));

  34.    would print a five.  ELEMENTS("abc") can also be used to  tell  how
  35.    many  bytes are in a string constant INCLUDING THE TRAILING NULL. */
  36. //
  37. #define ELEMENTS(array) (sizeof(array)/sizeof((array)[0]))


  38. /* All the functions that we'll define will be listed in a single table,
  39.    together with the internal function that we call to handle each.  The
  40.    functions all take a single argument (the resbuf that has the
  41.    arguments) and return an integer (RTNORM or RTERROR for good or bad
  42.    status).  */


  43. /* First, define the structure of the table: a string giving the AutoCAD name
  44.    of the function, and a pointer to a function returning type int. */
  45. struct func_entry { TCHAR *func_name; int (*func) (struct resbuf *); };

  46. /* Here we declare the functions that handle the calls; at the moment there are
  47.    two of them. */


  48. /* Here we define the array of function names and handlers. */
  49. struct func_entry func_table[] =
  50. {
  51.   {_T("LLRX-ProgressInit"), ProgressInit},
  52.   {_T("LLRX-Progress"), ProgressMeterPos},
  53.   {_T("LLRX-ProgressDone"), ProgressDone},
  54. };




  55. static int funcload();
  56. static int dofun();

  57.   //加载自定义函数
  58. static int funcload()
  59. {
  60.   int i;

  61.   for (i = 0; i < ELEMENTS(func_table); i++) {
  62.     if (!acedDefun(func_table.func_name, (short)i))
  63.       return RTERROR;
  64.   }
  65.   return RTNORM;
  66. }


  67. //执行函数
  68. static int dofun()
  69. {
  70.     struct resbuf *rb;
  71.     int val;

  72.     /* Get the function code and check that it's within range.
  73.        (It can't fail to be, but paranoia doesn't hurt.) */
  74.     if ((val = acedGetFunCode()) < 0 || val >= ELEMENTS(func_table)) {
  75.         acdbFail(_T(/*MSG2*/"Received nonexistent function code."));
  76.         return RTERROR;
  77.     }

  78.     /* Fetch the arguments, if any. */
  79.     rb = acedGetArgs();

  80.     /* Call the handler and return its success-failure status. */
  81.     val = (*func_table[val].func)(rb);
  82.     acutRelRb(rb);
  83.     return val;
  84. }





  85. //-----------------------------------------------------------------------------
  86. //----- ObjectARX EntryPoint
  87. //extern "C" AcRx::AppRetCode
  88. class CArxProject2App : public AcRxArxApp {

  89. public:
  90.   CArxProject2App () : AcRxArxApp () {}

  91.   virtual AcRx::AppRetCode On_kInitAppMsg (void *pkt) {
  92.     // TODO: Load dependencies here
  93.     acrxDynamicLinker->unlockApplication(pkt);
  94.     //acrxDynamicLinker->registerAppMDIAware(pkt);
  95.     // You *must* call On_kInitAppMsg here
  96.     AcRx::AppRetCode retCode =AcRxArxApp::On_kInitAppMsg (pkt) ;
  97.    
  98.     // TODO: Add your initialization code here
  99.     //initApp() ;
  100.   //funcload();
  101.     return (retCode) ;
  102.   }
  103.   virtual AcRx::AppRetCode On_kLoadDwgMsg (void *pkt) {
  104.       // TODO: Load dependencies here
  105.       // You *must* call On_kInitAppMsg here
  106.       AcRx::AppRetCode retCode =AcRxArxApp::On_kLoadDwgMsg (pkt) ;

  107.       // TODO: Add your initialization code here
  108.       funcload();
  109.       return (retCode) ;
  110.   }
  111.   virtual AcRx::AppRetCode On_kInvkSubrMsg (void *pkt) {
  112.     // TODO: Load dependencies here
  113.     //acrxDynamicLinker->registerAppMDIAware(pkt);
  114.     // You *must* call On_kInitAppMsg here
  115.     AcRx::AppRetCode retCode =AcRxArxApp::On_kInvkSubrMsg (pkt) ;

  116.     // TODO: Add your initialization code here
  117.     dofun();
  118.     return (retCode) ;
  119.   }
  120.   virtual AcRx::AppRetCode On_kUnloadAppMsg (void *pkt) {
  121.     // TODO: Add your code here
  122.         //acrxDynamicLinker->unlockApplication(pkt);
  123.     // You *must* call On_kUnloadAppMsg here
  124.     AcRx::AppRetCode retCode =AcRxArxApp::On_kUnloadAppMsg (pkt) ;

  125.     // TODO: Unload dependencies here
  126.        //unloadApp() ;
  127.     return (retCode) ;
  128.   }

  129.   virtual void RegisterServerComponents () {

  130.   }
  131.   
  132. } ;

  133. //-----------------------------------------------------------------------------
  134. IMPLEMENT_ARX_ENTRYPOINT(CArxProject2App)


  135. //进度条函数
  136. //进度条初始化
  137. int ProgressInit(struct resbuf *rb)
  138. {
  139.   if (rb == NULL)
  140.   {acdbFail(_T("\n参数太少"));
  141.   acedRetVoid();
  142.   return RTERROR;
  143.   }

  144.   ACHAR* str ;
  145.   //ACHAR *sPrompt;
  146.   if (rb->restype != RTSTR)
  147.   {
  148.     acdbFail(_T("\n第1个参数应为提示字串"));
  149.     acedRetVoid();
  150.     return RTERROR;
  151.     //sPrompt = str;

  152.   }
  153.   str = rb->resval.rstring;
  154.   rb = rb->rbnext;
  155.   if (rb == NULL)
  156.   {
  157.     acdbFail(_T("\n参数太少"));
  158.     acedRetVoid();
  159.     return RTERROR;
  160.   }
  161.   long nMaxPos;
  162.   if (rb->restype == RTLONG)
  163.   {

  164.     nMaxPos = rb->resval.rlong;
  165.   }
  166.   else
  167.     if (rb->restype == RTSHORT)
  168.     {
  169.       nMaxPos = long(rb->resval.rint);
  170.     }
  171.     else  
  172.     {
  173.       acdbFail(_T("\n第2个参数应为整数"));
  174.       acedRetVoid();
  175.       return RTERROR;

  176.     }
  177.     if (rb->rbnext !=NULL)
  178.     {
  179.       acdbFail(_T("\n参数太多"));
  180.       acedRetVoid();
  181.       return RTERROR;
  182.     }


  183.     acedSetStatusBarProgressMeter(str,0,nMaxPos);
  184.     // TODO: Replace the following line by your returned value if any
  185.     acedRetVoid () ;
  186.     return (RSRSLT) ;
  187. }

  188. //设置进度条位置
  189. int ProgressMeterPos (struct resbuf *rb)
  190. {
  191.   if (rb == NULL)
  192.   {acdbFail(_T("\n参数太少"));
  193.   acedRetVoid();
  194.   return RTERROR;
  195.   }
  196.   long nPos;
  197.   if (rb->restype == RTLONG)
  198.   {
  199.     nPos = rb->resval.rlong;
  200.   }
  201.   else
  202.     if (rb->restype == RTSHORT)
  203.     {
  204.       nPos = long(rb->resval.rint) ;
  205.     }
  206.     else  
  207.     {
  208.       acdbFail(_T("\n参数应为整数"));
  209.       acedRetVoid();
  210.       return RTERROR;

  211.     }
  212.     if (rb->rbnext !=NULL)
  213.     {
  214.       acdbFail(_T("\n参数太多"));
  215.       acedRetVoid();
  216.       return RTERROR;
  217.     }
  218.     acedSetStatusBarProgressMeterPos(nPos);
  219.     acedRetVoid () ;
  220.     return (RSRSLT) ;

  221. }
  222. //进度条终止
  223. int ProgressDone (struct resbuf *rb)
  224. {
  225.   if (rb != NULL)
  226.   {acdbFail(_T("\n参数太多"));
  227.   acedRetVoid();
  228.   return RTERROR;
  229.   }
  230.   acedRestoreStatusBar();
  231.   acedRetVoid () ;
  232.   return (RSRSLT) ;
  233. }

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-8-6 09:08:35 | 显示全部楼层
把 int ProgressInit(struct resbuf *rb) 参数去掉,

然后在文件最前面加上 int ProgressInit(); 声明下函数给编译器,看看如何?

另外,你编译不过,提示信息是什么?

点评

按您的方法修改后,编译提示: error C2440: 'initializing' : cannot convert from 'int (__cdecl *)(void)' to 'int (__cdecl *)(resbuf *)'  详情 回复 发表于 2013-8-6 09:19
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-6 09:19:51 | 显示全部楼层
XDSoft 发表于 2013-8-6 09:08
把 int ProgressInit(struct resbuf *rb) 参数去掉,

然后在文件最前面加上 int ProgressInit(); 声明下 ...

按您的方法修改后,编译提示:
error C2440: 'initializing' : cannot convert from 'int (__cdecl *)(void)' to 'int (__cdecl *)(resbuf *)'

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-8-6 09:35:15 | 显示全部楼层
在你的DOFUN里面

    /* Fetch the arguments, if any. */
    rb = acedGetArgs();

    /* Call the handler and return its success-failure status. */
    val = (*func_table[val].func)(rb);

是带参数的,把(rb)换成()试试,其他地方也检查下。

点评

还是提示同样的错误! 错误定位在 {_T("XLRX-getpoint"), mygetpoint}, 这句代码! 还是参数的问题吧!  详情 回复 发表于 2013-8-6 10:06
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-6 10:06:26 | 显示全部楼层
XDSoft 发表于 2013-8-6 09:35
在你的DOFUN里面

    /* Fetch the arguments, if any. */

还是提示同样的错误!
错误定位在 {_T("XLRX-getpoint"), mygetpoint}, 这句代码!
还是参数的问题吧!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-8-6 10:12:54 | 显示全部楼层
DOFUN修改后,

以后你所有的函数定义都不要带参数了,记得声明函数;
int abc()
{
    resbuf *rb=ads_getargs(); //通过这个获得LISP的参数
}

点评

函数申明都在头文件里! 只有用向导方式定义的函数,才可以不带参数!用我上面非向导方式的例子,就必须带参数啊?不带参数咋改都通不过!  详情 回复 发表于 2013-8-6 10:20
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-6 10:20:29 | 显示全部楼层
XDSoft 发表于 2013-8-6 10:12
DOFUN修改后,

以后你所有的函数定义都不要带参数了,记得声明函数;

函数申明都在头文件里!
只有用向导方式定义的函数,才可以不带参数!用我上面非向导方式的例子,就必须带参数啊?不带参数咋改都通不过!{:soso_e118:}

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-5-12 20:23 , Processed in 0.225447 second(s), 64 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表