1. Можно ли к проге на C# как-нибудь приладить файл lib, который предназначен для VC++?
2. Будут ли проблемы в этой же программе при явной загрузке dll, которая написана на Visual Basic (каком-то сравнительно старом). С этой dll в VC++ вроде проблем не было.
Здравствуйте, Jenyay, Вы писали:
J>1. Можно ли к проге на C# как-нибудь приладить файл lib, который предназначен для VC++?
Можно, но только на MC++.
J>2. Будут ли проблемы в этой же программе при явной загрузке dll, которая написана на Visual Basic (каком-то сравнительно старом). С этой dll в VC++ вроде проблем не было.
А какя разница? VB6 делал ком-объекты. С комом у нэта есть полноценный итероп.
... << RSDN@Home 1.0 beta 4 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
J>>1. Можно ли к проге на C# как-нибудь приладить файл lib, который предназначен для VC++?
VD>Можно, но только на MC++.
А нельзя как-нибудь из dll-ки сделать Lib (как, например, в VC lib.exe)? В C# вообще либы есть?
J>>2. Будут ли проблемы в этой же программе при явной загрузке dll, которая написана на Visual Basic (каком-то сравнительно старом). С этой dll в VC++ вроде проблем не было.
VD>А какя разница? VB6 делал ком-объекты. С комом у нэта есть полноценный итероп.
Здравствуйте, Jenyay, Вы писали:
J>А нельзя как-нибудь из dll-ки сделать Lib (как, например, в VC lib.exe)? В C# вообще либы есть?
Либ нет. Функции из dll-ек надо руками объявлять, в форуме это уже обсуждалось, посмотри.
В принципе, можешь написать утилиту, которая это будет делать автоматом. Остальные тебе будут очень благодарны
зы
В принципе, можешь поискать, кто-нибудь уже мог написал такое
Здравствуйте, DarkGray, Вы писали:
DG>Здравствуйте, Jenyay, Вы писали:
J>>А нельзя как-нибудь из dll-ки сделать Lib (как, например, в VC lib.exe)? В C# вообще либы есть?
DG>Либ нет.
Либы то есть (.netmodule), но они никакого родства не имеют с .lib
Здравствуйте, DarkGray, Вы писали:
DG>Здравствуйте, Jenyay, Вы писали:
J>>А нельзя как-нибудь из dll-ки сделать Lib (как, например, в VC lib.exe)? В C# вообще либы есть?
DG>Либ нет.
Одни сборки (или как их там)?
DG>Функции из dll-ек надо руками объявлять, в форуме это уже обсуждалось, посмотри.
Да, что-то потакое я видел.
DG>В принципе, можешь написать утилиту, которая это будет делать автоматом. Остальные тебе будут очень благодарны
А хорошая идея. Только не уверен, что руки до нее дойдут.
Здравствуйте, DarkGray, Вы писали:
DG>Либ нет.
MS>>Либы то есть (.netmodule), но они никакого родства не имеют с .lib
DG>Это модуль, если это был lib, то он назывался бы .netlib
Либы есть. Можно содать (и, наверное, даже юзать — не пробовал) lib'ы с managed кодом внутри.
Здравствуйте, MaxMP, Вы писали:
MMP>Здравствуйте, DarkGray, Вы писали:
DG>>Либ нет.
MS>>>Либы то есть (.netmodule), но они никакого родства не имеют с .lib
DG>>Это модуль, если это был lib, то он назывался бы .netlib
MMP>Либы есть. Можно содать (и, наверное, даже юзать — не пробовал) lib'ы с managed кодом внутри.
Что ты понимаешь под либами? Если это заглушка для dll, то в Нете есть такие сботки с описаниями (там нет только IL кода)
Если ты понимаешь под либами как то, что компиляется статичеки, то именно .netmodule (там как раз нет блока метаданных и по этому они не могут работать независимо)
Здравствуйте, VladD2, Вы писали:
VD>VB6 неумеет делать не COM.
Да она, похоже, на более древнем написана. А что СОВСЕМ не умеет? И именно 6-й.
VD>Но если есть не COM длл, ее можно импортировать вручную через атрибут DllImport.
Это я где-то на форуме видел. Просто там функций много вот и думал, может их как в Lib загнать, прилинковать и все.
Здравствуйте, MikaRSDN Soukhov, Вы писали:
MS>Здравствуйте, MaxMP, Вы писали:
MMP>>Здравствуйте, DarkGray, Вы писали:
DG>>>Либ нет.
MS>>>>Либы то есть (.netmodule), но они никакого родства не имеют с .lib
DG>>>Это модуль, если это был lib, то он назывался бы .netlib
MMP>>Либы есть. Можно содать (и, наверное, даже юзать — не пробовал) lib'ы с managed кодом внутри.
MS>Что ты понимаешь под либами? Если это заглушка для dll, то в Нете есть такие сботки с описаниями (там нет только IL кода) MS>Если ты понимаешь под либами как то, что компиляется статичеки, то именно .netmodule (там как раз нет блока метаданных и по этому они не могут работать независимо)
Нет, именно .lib. Просто напускаем lib.exe на полученный от cl managed obj и получаем .lib с managed stuff внутри. Но заюзать у меня не получилось, долго правда не копался.
Здравствуйте, Jenyay, Вы писали:
J>Здравствуйте, VladD2, Вы писали:
VD>>VB6 неумеет делать не COM.
J>Да она, похоже, на более древнем написана. А что СОВСЕМ не умеет? И именно 6-й.
Теоретически не умеет. Практически — вполне умеет (писалось, что c2.exe в VB — это тот же самый компилятор, что и в VC, только запускаемый "за сценой" с ключом -basic, и это очень похоже на правду), и в сети публиковалась несложная примочка (под названием VB compiler controller). С ее помощью я пробовал создавать обычные DLL'и, линковать к VB куски кода на ассемблере и выделывать прочие будто бы недоступные в VB вещи. Но если использовать чистый VB, без ухищрений, то полученная DLL должна быть на 100% COM'овской.
Здравствуйте, VladD2, Вы писали:
MS>>Либы то есть (.netmodule), но они никакого родства не имеют с .lib
VD>И заодно практически не работают. Попыкта создать контрол на базе этой фичи привела к диким вылетам.
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, VladD2, Вы писали:
MS>>>Либы то есть (.netmodule), но они никакого родства не имеют с .lib
VD>>И заодно практически не работают. Попыкта создать контрол на базе этой фичи привела к диким вылетам.
AVK>Они то работают. Студия с ними работать не может.
Настоящие программисты не играют в игры, смотрят Футураму и... работают с командной строкой
Здравствуйте, Riffell, Вы писали:
R>Теоретически не умеет. Практически — вполне умеет (писалось, что c2.exe в VB — это тот же самый компилятор, что и в VC, только запускаемый "за сценой" с ключом -basic, и это очень похоже на правду), и в сети публиковалась несложная примочка (под названием VB compiler controller). С ее помощью я пробовал создавать обычные DLL'и, линковать к VB куски кода на ассемблере и выделывать прочие будто бы недоступные в VB вещи. Но если использовать чистый VB, без ухищрений, то полученная DLL должна быть на 100% COM'овской.
А это относится только к 6-му?
А вообще, у меня это не сом, там даже классов нет — одни функции.
Здравствуйте, Jenyay, Вы писали:
J>Да она, похоже, на более древнем написана. А что СОВСЕМ не умеет? И именно 6-й.
5-й вроде тоже. Экзешники или КОМ-длли.
J>Это я где-то на форуме видел. Просто там функций много вот и думал, может их как в Lib загнать, прилинковать и все.
Либ-ы это только к МС++ и при каждом вызове бедет переход менеджед/анменеджед.
... << RSDN@Home 1.0 beta 4 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.