#pragma once #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #define WINVER 0x0600 #pragma warning(disable: 4786) //- 'DEBUG workaround' below prevents the MFC or ATL #include-s from pulling //- in "Afx.h" that would force the debug CRT through #pragma-s. #if defined(_DEBUG) && !defined(AC_FULL_DEBUG) #define _DEBUG_WAS_DEFINED #undef _DEBUG #pragma message ("Compiling MFC / STL / ATL header files in release mode.") #endif #pragma pack (push, 8) #pragma warning(disable: 4786 4996) #define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers #include // MFC core and standard components #include // MFC extensions #ifndef _AFX_NO_OLE_SUPPORT #include // MFC OLE classes #include // MFC OLE dialog classes #include // MFC Automation classes #endif #include // MFC support for Internet Explorer 4 Common Controls #ifndef _AFX_NO_AFXCMN_SUPPORT #include // MFC support for Windows Common Controls #endif #include #include #include #include "KTCad.h" #include #include extern HINSTANCE _hdllInstance; #ifdef _DEBUG_WAS_DEFINED #define _DEBUG #undef _DEBUG_WAS_DEFINED #endif #if ARX > 19 typedef int (*p2argF) (TCHAR *psz, size_t len); typedef int (*p3argF) (const TCHAR *psz1, TCHAR *psz, size_t len); #define BUFFER_LEN 1024 inline int procsess2arg(p2argF fun, TCHAR *psz) { if (!psz) return RTERROR; TCHAR pBuf[BUFFER_LEN] = { 0, }; int nret = fun(pBuf, 512); // 此处可能崩溃,注意长度 _tcscpy(psz, pBuf); return nret; } inline int procsess3arg(p3argF fun, const TCHAR *psz1, TCHAR *psz) { if (!psz) return RTERROR; TCHAR pBuf[BUFFER_LEN] = { 0, }; int nret = fun(psz1, pBuf, 512); // 此处可能崩溃,注意长度 _tcscpy(psz, pBuf); return nret; } //inline int ads_getinput(TCHAR *psz) //{ // return procsess2arg(::acedGetInput, psz); //} inline int acedGetInput(TCHAR *psz) { return procsess2arg(::acedGetInput, psz); } inline int acedGetString(int cronly, const TCHAR *prompt, TCHAR *psz) { if (!prompt) return RTERROR; TCHAR pBuf[512] = { 0, }; int nRet = ::acedGetString(cronly, prompt, pBuf, 512); _tcscpy(psz, pBuf); return nRet; } inline int acedFindFile(const TCHAR *pfname, TCHAR *psz) { return procsess3arg(::acedFindFile, pfname, psz); } inline int acdbAngToS(ads_real v, int unit, int prec, TCHAR *psz) { if (!psz) return RTERROR; TCHAR pBuf[512]; int nRet = ::acdbAngToS(v, unit, prec, pBuf, 512); _tcscpy(psz, pBuf); return nRet; } #endif