我有一个C++/CLI DLL,我想知道Win32 API函数的首选替代方案是什么GetModuleFilename.我找到了Assembly::GetExecutingAssembly()->ManifestModule->FullyQualifiedName(MSDN).这似乎有效,但我想知道是否有不同或"更好"的方式.当然,我知道在技术上没有什么禁止我GetModuleFilename直接使用,但我讨厌混合不同的API,这也需要创建一个字符串缓冲区,然后我必须转换回一个System::String.我知道它只有两行代码但仍然...... ;-)
不要使用GetModuleFileName(),.NET 4.0 CLR删除了一些appcompat代码,使加载的程序集类似于常规DLL.此外,HMODULE很麻烦,你不能使用VirtualQuery技巧将代码地址转换为HMODULE.
Assembly::GetExecutingAssembly()->Location 为您提供了装配当前方法的IL的装配的完整路径.
| 归档时间: |
|
| 查看次数: |
948 次 |
| 最近记录: |