名前: 角藤 日時: 2003-02-23 14:27:41 IPアドレス: 203.165.2.*
>>16901 >platexsh.exe が platex.fmt の方を呼び出せばよい? 簡単には、以下を platexsh.c として、platexsh.exe を作成するだけでよいと思います: #include <stdio.h> #include <malloc.h> #include <windows.h> #define BUF 512 #define ARGMAX 32 int main(int argc, char *argv[]) { int ac, i; char *av[ARGMAX]; HINSTANCE Hinstance; PROC paddress; if(argc > 30) { fprintf(stderr, "Too many arguments.\n"); return 1; } for(i=0; i < argc; i++) { if(strlen(argv[i]) > BUF-1) { fprintf(stderr, "Too long an argument. Sorry.\n"); return 1; } } ac = argc + 1; for(i=0; i < ac; i++) av[i] = (char *)malloc(BUF); strcpy(av[0], "platex"); strcpy(av[1], "--shell-escape"); for(i = 1; i < argc; i++) strcpy(av[i+1], argv[i]); av[ac] = NULL; Hinstance = LoadLibrary("ptex.dll"); if(Hinstance != NULL) { paddress = GetProcAddress(Hinstance, "dllptexmain"); if(paddress != NULL) paddress(ac, av); FreeLibrary(Hinstance); } for(i=0; i < ac; i++) free(av[i]); return 0; }
この書き込みへの返事: