-getcwd至少在使用VS 2010进行调试时不会返回它。
由于使用了的用户界面工具包,-i无法访问主要参数
所以有什么可做的吗?
PS。请在将此标记为重复之前注意限制
答案 0 :(得分:5)
使用GetModuleFileName()并传递NULL作为第一个参数:
DWORD last_error;
DWORD result;
DWORD path_size = 1024;
char* path = malloc(1024);
for (;;)
{
memset(path, 0, path_size);
result = GetModuleFileName(0, path, path_size - 1);
last_error = GetLastError();
if (0 == result)
{
free(path);
path = 0;
break;
}
else if (result == path_size - 1)
{
free(path);
/* May need to also check for ERROR_SUCCESS here if XP/2K */
if (ERROR_INSUFFICIENT_BUFFER != last_error)
{
path = 0;
break;
}
path_size = path_size * 2;
path = malloc(path_size);
}
else
{
break;
}
}
if (!path)
{
fprintf(stderr, "Failure: %d\n", last_error);
}
else
{
printf("path=%s\n", path);
}
答案 1 :(得分:2)
将NULL
作为GetModuleFileName的第一个参数传递。