将程序设置为通过registry自动运行

我有以下代码: http : //privatepaste.com/8364a2a7b8/12345

但它只写“C”(据说,转换为LPBYTE只留下一个字节)。

什么是正确的方式来处理GetModuleFileName和registry编辑?

strlen((char*)szPath2)+1 

这很可能是你的问题所在。 我敢打赌你的程序是以UNICODE模式编译的。 strlen只适用于ASCII字符串。 (事实上​​,你不得不从TCHAR转换到字符是一个很大的暗示,某事是不正确的。)

为了保持与TCHAR等的使用一致,你应该使用_tcslen来代替。