![]() |
![]() | #1 |
I can seeee~ you !~!~! Join Date: 12 2004 Location: now in Yerevan
Posts: 173
Downloads: 0 Uploads: 0
Reputation: 0 | 0 | ![]()
Provet vsem, kto nibud' delal takoe ? skajem ya imeyu DLL sdelanni v dot.net i mne nado sdelat' druguyo dll napisanni na C++ (jelatelno v Borland C++) kotori budet v sebe imet' funkciyu kotoraya v svoyu ochered' doljen vizivat' funkciayu v DLL zdelanni na dot.net (C#). |
![]() |
![]() | #3 |
Академик Join Date: 06 2004 Location: Yerevan
Posts: 9,326
Downloads: 3 Uploads: 0
Reputation: 680 | 6 | ![]() http://www.codeproject.com/csharp/ManagedCOM.asp вне COM не пробовал. Может быть не все гладко с трвиальным LoadLibrary, что связано с иной логикой загрузки .NET приложений. |
![]() |
![]() | #4 |
Школьник Join Date: 08 2004 Location: Armenia Age: 38
Posts: 246
Downloads: 0 Uploads: 0
Reputation: 4 | 0 | ![]()
Indz tvum a ughigh kanchel hnaravor chi (LoadLibrary()/GetModuleHandle()). Porci .NET dll-i vra COM Wrapper sarqel, u dra mijocov C++-ic kanchel. Isk [email protected] kargi [email protected] Microsoft-i forumnerum taln a. http://forums.microsoft.com/msdn/default.aspx?siteid=1 |
![]() |
![]() | #6 |
Профессор Join Date: 07 2004 Location: Own world Age: 39
Posts: 3,657
Downloads: 22 Uploads: 0
Reputation: 228 | 4 | ![]()
TigrOm джан, а разве .нет или любые другие вин-приложения не загружаются по одному и тому же принципу, согласно PE формату? Единственная проблема что я вижу с LoadLibrary()/GetProcAddress(), это что сигнатура С# функции котороую надо вызвать из C++, должна иметь исключительно POD-types в качестве формальных параметров и возвращаемого значения, и не иметь чисто C#-ские классы, потому как неизвестно какой C++ класс ему должен соответствовать, да и в принципе может ли? Не понимаю одного, зачем все смешивать, пусть либо будет только C# длл-ки, либо C++-шные. |
![]() |
![]() | #7 | |
Грустно... Join Date: 08 2002 Location: Там, где всегда идут дожди Age: 38
Posts: 21,717
Downloads: 2 Uploads: 0
Reputation: 250 | 8 | ![]() Quote:
| |
![]() |
![]() | #9 | |
Академик Join Date: 06 2004 Location: Yerevan
Posts: 9,326
Downloads: 3 Uploads: 0
Reputation: 680 | 6 | ![]() Quote:
При загрузке любых модулей с PE, система распознает что именно должно происходить с exe/dll модулем, а именно при загрузке управляемой сборки в неуправляемый поток приложения система иницализирует CLR, при этом создавая домен приложаения для управляемой сборки и доменно-нейтральные "сборки" для неуправляемого кода. Взаимодействие же через границы сборок может происходить только путем маршалинга. Вызывающий неуправляемый код ничего не знает о способах сериалкизации/маршалинга типов/вызовов управляемого кода. Отсюда и потребность в COM wrapper-e. А загрузка с PE ессно происходит одинаково с точки зрения системы, о чем речь? Но вот что потом? ![]() П.С. Кроме того элементарного экспортирования функций из модулей управляемого кода в формате "dllexport" я не обнаружил. Вызов функций управляемого кода происходит видимо по аналогии с COM вызовами, через "фабрику классов". | |
![]() |
![]() | #10 |
Академик Join Date: 06 2004 Location: Yerevan
Posts: 9,326
Downloads: 3 Uploads: 0
Reputation: 680 | 6 | ![]() |
![]() |
![]() | #11 |
Кандидат Join Date: 09 2005 Location: Yerevan Age: 45
Posts: 1,149
Downloads: 15 Uploads: 1
Reputation: 149 | 4 | ![]()
Use the Assembly Registration tool (Regasm.exe) The Assembly Registration tool reads the metadata within an assembly and adds the necessary entries to the registry, which allows COM clients to create .NET Framework classes transparently. |
![]() |
![]() | #13 |
Кандидат Join Date: 09 2005 Location: Yerevan Age: 45
Posts: 1,149
Downloads: 15 Uploads: 1
Reputation: 149 | 4 | ![]() |
![]() |
![]() | #15 | |
Академик Join Date: 06 2004 Location: Yerevan
Posts: 9,326
Downloads: 3 Uploads: 0
Reputation: 680 | 6 | ![]() Quote:
![]() | |
![]() |
Sponsored Links |