Преобразование детерминированного кода пути из C # в C ++ - PullRequest
1 голос
/ 21 января 2011

Кто-нибудь знает, как я могу преобразовать это (из C #) в C ++?

string location = Path.GetDirectoryName(Assembly.GetAssembly(typeof(ZigbeeCommUSB)).CodeBase);
location = location.Substring(location.IndexOf("\\") + 1);

Спасибо.

РЕДАКТИРОВАТЬ: Дополнительная информация

Это конвертировать из C # в родной C ++. Если есть другой способ получить путь к файлу исполняемого в настоящий момент исполняемого файла, я открыт для идей. Благодаря.

Ответы [ 2 ]

1 голос
/ 21 января 2011

Чтобы получить путь к текущему исполняемому файлу, используйте GetModuleFileName , используя аргумент NULL hModule.

1 голос
/ 21 января 2011

Примерof Assembly.GetAssembly из приведенной выше ссылки

Assembly^ SampleAssembly;
// Instantiate a target object.
Int32 Integer1(0);
Type^ Type1;
// Set the Type instance to the target class type.
Type1 = Integer1.GetType();
// Instantiate an Assembly class to the assembly housing the Integer type.  
SampleAssembly = Assembly::GetAssembly( Integer1.GetType() );
// Gets the location of the assembly using file: protocol.
Console::WriteLine( "CodeBase= {0}", SampleAssembly->CodeBase );

Если вы объедините вышеперечисленное, вы, вероятно, немного приблизитесь к тому, что хотите сделать. Если это будет сделано в Native C ++, у вас будет немного больше проблем, есть нечто под названием "Fusion API" , которое может помочь вам найти сборки в GAC.

...