AKB Forums

Go Back   AKB Forums > Technical sections > Languages, Compilers and Interpreters
Home Register Blogs FAQ Members List Calendar Downloads Arcade Mark Forums Read

Languages, Compilers and Interpreters C,C++,C#,.NET,Java,PHP,Perl,SQL and more

Troubles when posting message? Click here! :: Проблемы с отправлением сообщения? Нажмите сюда!

Reply
 
LinkBack Thread Tools Display Modes
Old Dec 5, 2006, 19:11   #1
I can seeee~ you !~!~!
 
Xman's Avatar
 
Join Date: Dec 2004
Location: now in Yerevan
Posts: 171
Rep Power: 4
Reputation: 10
Send a message via ICQ to Xman Send a message via MSN to Xman
Thumbs up call function in managed DLL (C#) from unmanaged C++ ... ?

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#).
__________________
...big space=>cool gap=>wolf's cry=>dark Night;}
Xman is offline   Reply With Quote Quote selected
Old Dec 5, 2006, 19:45   #2
Дикообраз-безобраз
 
AvDav's Avatar
 
Join Date: Jul 2004
Location: У самого синего моря
Posts: 2,921
Rep Power: 5
Reputation: 142
а какая разница чем сделан длл, он и в Африке длл
1. LoadLibrary()/GetModuleHandle()
2. GetProcAddress()
__________________
- Гитлер?!!
- Да?!!
- Зурна!!!
AvDav is offline   Reply With Quote Quote selected
Old Dec 5, 2006, 20:47   #3
Академик
 
TigrOm's Avatar
 
Join Date: Jun 2004
Location: Yerevan
Posts: 9,199
Blog Entries: 1
Rep Power: 7
Reputation: 522
Send a message via ICQ to TigrOm
http://www.codeproject.com/csharp/ManagedCOM.asp

вне COM не пробовал.
Может быть не все гладко с трвиальным LoadLibrary, что связано с иной логикой загрузки .NET приложений.
TigrOm is offline   Reply With Quote Quote selected
Old Dec 6, 2006, 06:45   #4
Школьник
 
Junior's Avatar
 
Join Date: Aug 2004
Location: Armenia
Posts: 243
Rep Power: 5
Reputation: 10
Indz tvum a ughigh kanchel hnaravor chi (LoadLibrary()/GetModuleHandle()). Porci .NET dll-i vra COM Wrapper sarqel, u dra mijocov C++-ic kanchel.
Isk amenachisht@-es kargi harcer@ Microsoft-i forumnerum taln a.
http://forums.microsoft.com/msdn/default.aspx?siteid=1
__________________
One way, or another, I'm gonna get You...
From a song.
Junior is offline   Reply With Quote Quote selected
Old Dec 6, 2006, 06:49   #5
Грустно...
 
Agregat's Avatar
 
Join Date: Aug 2002
Location: Там, где всегда идут дожди
Posts: 21,616
Rep Power: 11
Reputation: 202
Send a message via ICQ to Agregat Send a message via MSN to Agregat
Да, надо писать КОМ враппер.
__________________
http://аvitya.livejournal.com
Хотели, как лучше, а получилось даже хуже...
Лозунг шахматиста: На каждый шах - ответим матом!
Agregat is offline   Reply With Quote Quote selected
Old Dec 6, 2006, 06:52   #6
Дикообраз-безобраз
 
AvDav's Avatar
 
Join Date: Jul 2004
Location: У самого синего моря
Posts: 2,921
Rep Power: 5
Reputation: 142
TigrOm джан, а разве .нет или любые другие вин-приложения не загружаются по одному и тому же принципу, согласно PE формату? Единственная проблема что я вижу с LoadLibrary()/GetProcAddress(), это что сигнатура С# функции котороую надо вызвать из C++, должна иметь исключительно POD-types в качестве формальных параметров и возвращаемого значения, и не иметь чисто C#-ские классы, потому как неизвестно какой C++ класс ему должен соответствовать, да и в принципе может ли?
Не понимаю одного, зачем все смешивать, пусть либо будет только C# длл-ки, либо C++-шные.
__________________
- Гитлер?!!
- Да?!!
- Зурна!!!
AvDav is offline   Reply With Quote Quote selected
Old Dec 6, 2006, 06:54   #7
Грустно...
 
Agregat's Avatar
 
Join Date: Aug 2002
Location: Там, где всегда идут дожди
Posts: 21,616
Rep Power: 11
Reputation: 202
Send a message via ICQ to Agregat Send a message via MSN to Agregat
Quote:
Originally Posted by AvDav View Post
TigrOm джан, а разве .нет или любые другие вин-приложения не загружаются по одному и тому же принципу, согласно PE формату? Единственная проблема что я вижу с LoadLibrary()/GetProcAddress(), это что сигнатура С# функции котороую надо вызвать из C++, должна иметь исключительно POD-types в качестве формальных параметров и возвращаемого значения, и не иметь чисто C#-ские классы, потому как неизвестно какой C++ класс ему должен соответствовать, да и в принципе может ли?
Не понимаю одного, зачем все смешивать, пусть либо будет только C# длл-ки, либо C++-шные.
Нет. Там в ПЕ хидере идет ссылка на .нет загрузчик. Который уже подгружает метадату и работает другим способом
__________________
http://аvitya.livejournal.com
Хотели, как лучше, а получилось даже хуже...
Лозунг шахматиста: На каждый шах - ответим матом!
Agregat is offline   Reply With Quote Quote selected
Old Dec 6, 2006, 07:08   #8
Дикообраз-безобраз
 
AvDav's Avatar
 
Join Date: Jul 2004
Location: У самого синего моря
Posts: 2,921
Rep Power: 5
Reputation: 142
Оппыньки
__________________
- Гитлер?!!
- Да?!!
- Зурна!!!
AvDav is offline   Reply With Quote Quote selected
Old Dec 6, 2006, 07:19   #9
Академик
 
TigrOm's Avatar
 
Join Date: Jun 2004
Location: Yerevan
Posts: 9,199
Blog Entries: 1
Rep Power: 7
Reputation: 522
Send a message via ICQ to TigrOm
Quote:
Originally Posted by AvDav View Post
TigrOm джан, а разве .нет или любые другие вин-приложения не загружаются по одному и тому же принципу, согласно PE формату? Единственная проблема что я вижу с LoadLibrary()/GetProcAddress(), это что сигнатура С# функции котороую надо вызвать из C++, должна иметь исключительно POD-types в качестве формальных параметров и возвращаемого значения, и не иметь чисто C#-ские классы, потому как неизвестно какой C++ класс ему должен соответствовать, да и в принципе может ли?
Не понимаю одного, зачем все смешивать, пусть либо будет только C# длл-ки, либо C++-шные.
Поясню что я имел ввиду:

При загрузке любых модулей с PE, система распознает что именно должно происходить с exe/dll модулем, а именно при загрузке управляемой сборки в неуправляемый поток приложения система иницализирует CLR, при этом создавая домен приложаения для управляемой сборки и доменно-нейтральные "сборки" для неуправляемого кода. Взаимодействие же через границы сборок может происходить только путем маршалинга. Вызывающий неуправляемый код ничего не знает о способах сериалкизации/маршалинга типов/вызовов управляемого кода. Отсюда и потребность в COM wrapper-e.


А загрузка с PE ессно происходит одинаково с точки зрения системы, о чем речь? Но вот что потом?

П.С. Кроме того элементарного экспортирования функций из модулей управляемого кода в формате "dllexport" я не обнаружил. Вызов функций управляемого кода происходит видимо по аналогии с COM вызовами, через "фабрику классов".
TigrOm is offline   Reply With Quote Quote selected
Old Dec 6, 2006, 07:20   #10
Академик
 
TigrOm's Avatar
 
Join Date: Jun 2004
Location: Yerevan
Posts: 9,199
Blog Entries: 1
Rep Power: 7
Reputation: 522
Send a message via ICQ to TigrOm
Quote:
Originally Posted by Agregat View Post
Нет. Там в ПЕ хидере идет ссылка на .нет загрузчик. Который уже подгружает метадату и работает другим способом
Ну да, но все это происходит автоматически.
Т.е. видимо вызывая LoadLibrary, все должно сработать.
TigrOm is offline   Reply With Quote Quote selected
Old Dec 6, 2006, 07:22   #11
Кандидат
 
Wedge's Avatar
 
Join Date: Sep 2005
Location: Yerevan
Posts: 1,032
Rep Power: 4
Reputation: 96
Send a message via ICQ to Wedge Send a message via MSN to Wedge
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.
__________________
Великий квадрат не имеет углов.
Все, что может быть...
Wedge is offline   Reply With Quote Quote selected
Old Dec 6, 2006, 07:25   #12
Дикообраз-безобраз
 
AvDav's Avatar
 
Join Date: Jul 2004
Location: У самого синего моря
Posts: 2,921
Rep Power: 5
Reputation: 142
Ok, спасибо за пояснение.
__________________
- Гитлер?!!
- Да?!!
- Зурна!!!
AvDav is offline   Reply With Quote Quote selected
Old Dec 6, 2006, 07:27   #13
Кандидат
 
Wedge's Avatar
 
Join Date: Sep 2005
Location: Yerevan
Posts: 1,032
Rep Power: 4
Reputation: 96
Send a message via ICQ to Wedge Send a message via MSN to Wedge
Quote:
Originally Posted by AvDav View Post
а какая разница чем сделан длл, он и в Африке длл
1. LoadLibrary()/GetModuleHandle()
2. GetProcAddress()
Не согласен.
Dot Net-овский dll это нечто совсем иное, чем обычный.
__________________
Великий квадрат не имеет углов.
Все, что может быть...
Wedge is offline   Reply With Quote Quote selected
Old Dec 6, 2006, 07:29   #14
Дикообраз-безобраз
 
AvDav's Avatar
 
Join Date: Jul 2004
Location: У самого синего моря
Posts: 2,921
Rep Power: 5
Reputation: 142
ну я от дот-нета очень далек, поэтому это первое что пришло в голову
__________________
- Гитлер?!!
- Да?!!
- Зурна!!!
AvDav is offline   Reply With Quote Quote selected
Old Dec 6, 2006, 07:32   #15
Академик
 
TigrOm's Avatar
 
Join Date: Jun 2004
Location: Yerevan
Posts: 9,199
Blog Entries: 1
Rep Power: 7
Reputation: 522
Send a message via ICQ to TigrOm
Quote:
Originally Posted by AvDav View Post
ну я от дот-нета очень далек, поэтому это первое что пришло в голову
вообще, технологии стараются делать такими чтоб можно было без значительных усилий пользоваться некими общими принципами/правилами. Так что вектор мыслей в принципе тебя бы привел к решению проблемы
TigrOm is offline   Reply With Quote Quote selected
Reply

« GRASP | dzec »

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Help!Help!help! Awful Unix 56 Sep 21, 2005 12:32
restrictions on INLINE statement greka Languages, Compilers and Interpreters 9 Jun 14, 2004 19:28
static virtual function Aram Hambardzumyan Languages, Compilers and Interpreters 31 Mar 31, 2004 16:36
Хакеры атакуют.... Mono General 17 Aug 6, 2003 16:10
getline function Aram Hambardzumyan Languages, Compilers and Interpreters 6 Aug 13, 2002 02:48


All times are GMT. The time now is 23:16.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
This board was founded on September 29, 2001
Powered by Viper Internet

Affordable Web Hosting | ParevNet

Buy text link