Я переношу заголовки tcl/tk C в D, и я столкнулся с типом, который нигде не определен. Внутри файла tclPlatDecls.h
есть следующее определение:В заголовке C tclPlatDecls.h, где определено значение TclPlatStubHooks?
typedef struct TclPlatStubs {
int magic;
struct TclPlatStubHooks *hooks;
#ifdef __WIN32__ /* WIN */
TCHAR * (*tcl_WinUtfToTChar) (CONST char *str, int len, Tcl_DString *dsPtr); /* 0 */
char * (*tcl_WinTCharToUtf) (CONST TCHAR *str, int len, Tcl_DString *dsPtr); /* 1 */
#endif /* WIN */
#ifdef MAC_OSX_TCL /* MACOSX */
int (*tcl_MacOSXOpenBundleResources) (Tcl_Interp *interp, CONST char *bundleName, int hasResourceFile, int maxPathLen, char *libraryPath); /* 0 */
int (*tcl_MacOSXOpenVersionedBundleResources) (Tcl_Interp *interp, CONST char *bundleName, CONST char *bundleVersion, int hasResourceFile, int maxPathLen, char *libraryPath); /* 1 */
#endif /* MACOSX */
} TclPlatStubs;
Я не могу найти определение TclPlatStubHooks
. Любая идея, где это? Я grep'ed всей базы кода и нет определения нигде. Даже поиск в сети не дает никаких результатов.
Вполне возможно, что это то, что * используется *, чтобы указать на нечто реальное, но которое больше не нужно. Если это так, оно сохраняется, так как эта структура не может быть сокращена вообще из-за Tcl 8. * с очень строгим требованием совместимости ABI. (Он инициализирован 'NULL' ...) –