在命令提示符中,这有效:whatever\folder> bezier.exe
但这不是:whatever> folder\bezier.exe
我的贝塞尔程序从本地文件加载一些设置,所以我认为问题在于程序认为它的目录whatever\
实际上是whatever\folder\
. 我在 C 程序中使用CreateProcess()
. 如果我猜对了这个问题,有没有办法确保程序有正确的目录?
bezier.exe的主要方法:
int main(int argc, char* argv[]) {
char buf[200];
FILE* f = fopen("out.txt","w");
GetCurrentDirectory(200,buf);
fprintf(f,buf);
fclose(f);
SDL_Surface* screen;
SDL_Event e;
SDL_Init(SDL_INIT_VIDEO);
screen = SDL_SetVideoMode(WIDTH, HEIGHT, 32, SDL_FULLSCREEN|SDL_HWSURFACE);
if (screen == NULL)
exit(-1);
SDL_ShowCursor(SDL_DISABLE);
srand(time(NULL));
loadColors(COLOR_FILE);
fill(screen, backColor);
initialiseVars();
while (e.type != SDL_KEYDOWN)
{
//do stuff
}
SDL_Quit();
return 0;
}
这是疯狂的部分。使用“..> folder\bezier.exe”它不会写它的路径,但它会启动一个新窗口。这对我来说没有任何意义,因为 SDL_SetVideoMode 是在编写路径之后。