#include #include #include #include #include #include int Tk_AppInit(Tcl_Interp *interp){ if (Tcl_Init(interp) == TCL_ERROR) { return TCL_ERROR; } if (Tk_Init(interp) == TCL_ERROR) { return TCL_ERROR; } TCHAR exedir [MAX_PATH]; #if 0 GetModuleFileName(NULL, exedir, MAX_PATH); _tprintf("%s/n", exedir); PathRemoveFileSpec(exedir); _tprintf("%s/n", exedir); #endif /*Get the module's full path, and set to the current working directory.*/ if (!GetModuleFileName(NULL, exedir, MAX_PATH)) { TCHAR errmsg[512]; FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,0, GetLastError(),0,errmsg,1024,NULL); _tprintf( TEXT("The path is %s, and the error is %s/n"), exedir, errmsg ); } if (!PathRemoveFileSpec(exedir)) { TCHAR errmsg[512]; FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,0, GetLastError(),0,errmsg,1024,NULL); _tprintf( TEXT("The target dir is %s, and the error is %s/n"), exedir, errmsg ); } if (!SetCurrentDirectory(exedir)) { TCHAR errmsg[512]; FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,0, GetLastError(),0,errmsg,1024,NULL); _tprintf( TEXT("The working dir is %s, and the error is %s/n"), exedir,errmsg ); } Tcl_EvalFile(interp,"textsweep.tcl"); return TCL_OK; } int main(int argc, char **argv) { Tk_Main (argc, argv, Tk_AppInit); return 0; } // gcc -o test.exe test.c -L/mingw/path/to/library/directory -ltcl86 -ltk86 -DTCL_THREADS=1