0 Members and 1 Guest are viewing this topic.
maybe use a safearray?Code - Auto/Visual Lisp: [Select](vlax-make-safearray vlax-vbLong '(1 . 80)) ; -Make a very large array of numbers.
Quote from: JohnK on June 20, 2022, 04:03:27 PMmaybe use a safearray?Code - Auto/Visual Lisp: [Select](vlax-make-safearray vlax-vbLong '(1 . 80)) ; -Make a very large array of numbers. (vlax-make-variant 1234567890123456789 20)#<variant 20 1234567890123456768>why?
// These next two codes are added for developer convenience and are// not supported by entity access, dxf, xdata or xrecord routines.// They are, however, supported by the resbuf utility functions// (acutBuildList, acutNewRb and acedInvoke).//#define RTLONG_PTR 5030 // integer value with pointer precision#define RTINT64 5031 // integer value with 64-bit precision
(setq a(vlax-make-variant 12345678901234567))return: #<variant 5 1.23456789012346E+16>i need a long long integer
using 9223372036854775807 (max int64) as a test in ARX(set64 9223372036854775807) fails because it comes through as a double, so I think that's a maximum of 53bits .?.(get64) returns 9223372036854775807, so that's a successBricsCAD sees the int64 as a int16, so... looks like your SOLcode for reference Code - C: [Select] static int ads_set64(void) { resbuf* pRb = acedGetArgs(); if (pRb->restype == RTINT64) { acutPrintf(_T("\nsuccess, %ls"), std::to_wstring(pRb->resval.mnInt64).c_str()); acedRetT(); } acedRetNil(); acutRelRb(pRb); return (RSRSLT); } static int ads_get64(void) { resbuf* pRb = acutNewRb(RTINT64); pRb->resval.mnInt64 = 9223372036854775807; acedRetList(pRb); acutRelRb(pRb); return (RSRSLT); }
Okai (setq aa(vlax-variant-value(vlax-make-variant 15000000000 20)))How to read the "aa"?How to add the aa+other number?How to divide aa / int32?