Имя: Пароль:
IT
 
C# путь к dll
0 oleg_km
 
04.07.13
17:21
Что-то с наскока не удается найти имя с путем dll из самой dll. Dll -это COM написанный на C#. Нужен аналог GetModuleFileName
1 H A D G E H O G s
 
04.07.13
17:27
Что не получается?
2 H A D G E H O G s
 
04.07.13
17:28
Вызывай GetModuleFileName(), что мешает?
3 oleg_km
 
04.07.13
17:31
(2) Хочу аналог на .NET, не хочу делать DllImport
4 H A D G E H O G s
 
04.07.13
17:33
(3) Я тебя не понял, но я подозреваю, что причина в отсутствии у тебя
HInstance

Переходите на Дельфи, там это вшитая глобальная переменная.
5 H A D G E H O G s
 
04.07.13
17:35
Ну или CreateToolhelp32Snapshot(), а там уж через
Module32First()
Module32Next()
ищи свою родимую.
6 H A D G E H O G s
 
04.07.13
17:37
(3) А че бы не сделать, это же тупо подписчик на загрузку либы, в него входящим идет дескриптор на нее.

p.s.
Неужеле в C# HInstance нет автоматом?
7 Serginio1
 
04.07.13
17:46
string fullFileName = typeof(ИзвестныйТип).Assembly.GetFiles()[0].Name;
typeof (ИзвестныйТип).Assembly.Location

ТекущаяДиректория = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName).ToString();
8 Serginio1
 
04.07.13
17:50
public class ClassFromClassLibrary
{
 ...
 public string GetPathToThisDll()
 {
   // не нравится мне эта строка:
   string fullFileName = typeof(ClassFromClassLibrary).Assembly.GetFiles()[0].Name;
или
fullFileName =typeof (ClassFromClassLibrary).Assembly.Location
   // а это уже банально
   retrun Path.GetDirectoryName(fullFileName);
 }
 ...
}
2 + 2 = 3.9999999999999999999999999999999...