写了一个程序,非常简单:
#include <windows.h>
#include <iostream>
#define UNICODE
int main()
{
if (::CreateSymbolicLink(TEXT("D:\\HOME\\myemacsconfig"),
TEXT("D:\\Dropbox\\HOME\\.emacs"),
SYMBOLIC_LINK_FLAG_DIRECTORY) == 0){
std::cout << "The symlink create successfully" << std::endl;
return 0;
}
else{
std::cerr << "Error occured, code = " << GetLastError() << std::endl;
return -1;
}
return -1;
}
编译完运行的时候,程序没有任何反应就退出了,最后发现Output里打印了这么一句:
Debugger:: An unhandled non-continuable exception was thrown during process load
google一把,也没什么结果,查看了一下CreateSymbolicLink的说明,发面此函数在Vista以上才支持,而我的是XP系统,
在控制台运行程序的时候一点反应都没有,太坑爹了。
应该是PE Loader在检查,该文件的输入表时,失败所至。Anyway,也应该有点提示啊。。