_get_pgmptr 与 GetModuleFileName

_get_pgmptr vs GetModuleFileName

这两者之间有什么区别(如果有的话)? MSDN 很不清楚。

这里听起来它们是等价的: https://msdn.microsoft.com/en-us/library/windows/desktop/ms683197%28v=vs.85%29.aspx

但这里听起来好像_pgmptr 可能并不总是给我一个完整的路径,但它并没有真正说明在什么情况下。 https://msdn.microsoft.com/en-us/library/tza1y5f7.aspx

_pgmptr 似乎对我更有吸引力,因为我不必用它玩缓冲区大小猜谜游戏。

_pgmptr 在内部使用 GetModuleFileName 进行初始化,所以答案是没有区别 - 它们将 return 相同的字符串。

至少有一个区别:_get_pgmptr() 在应用程序初始化的早期不可用,而 GetModuleFileName() 是。因为这个,我刚刚被 Static Initialization Order Fiasco 咬了 :(