Autor Wątek: przekazanie this'a do C++  (Przeczytany 1854 razy)

Offline macszur

  • Użytkownik

# Lipiec 19, 2007, 15:09:46
Witam !
W C#'pie ładuję sobie dllkę i jak tu zrobić żeby this z C# przekazać do tej C++'owej Dll'ki ?
no i móc jakoś skorzystać z funkcji udostępnionych przez tego this'a, np. jakoś tak dostać tego this'a żeby nadawał się do załadowania jako obiekt COM. Co do COM'a to niby od razu mógłbym utworzyć sobie obiekt przez COM'a ale właśnie chodzi o to że obiekt jest tworzony jako activeX na stronie dlatego chyba muszę przekazać sobie this :)
« Ostatnia zmiana: Lipiec 19, 2007, 15:16:07 wysłana przez macszur »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline counterClockWise

  • Użytkownik

# Lipiec 20, 2007, 00:07:45
Witam !
W C#'pie ładuję sobie dllkę i jak tu zrobić żeby this z C# przekazać do tej C++'owej Dll'ki ?
no i móc jakoś skorzystać z funkcji udostępnionych przez tego this'a, np. jakoś tak dostać tego this'a żeby nadawał się do załadowania jako obiekt COM. Co do COM'a to niby od razu mógłbym utworzyć sobie obiekt przez COM'a ale właśnie chodzi o to że obiekt jest tworzony jako activeX na stronie dlatego chyba muszę przekazać sobie this :)

Albo jestem głupi, albo napisałeś to tak nieprecyzyjnie i niejasno, że nie wiem o co dokładnie Ci chodzi.

Offline Nevermind77

  • Użytkownik

# Lipiec 20, 2007, 00:12:02
Ciężko się czyta... Chyba chodzi o przekazanie wskaźnika, ale nie rozumiem o co chodzi... Referencja (&)?

Offline counterClockWise

  • Użytkownik

# Lipiec 20, 2007, 00:20:43
Ciężko się czyta... Chyba chodzi o przekazanie wskaźnika, ale nie rozumiem o co chodzi... Referencja (&)?

Ale co oznaczałoby przekazanie wskaźnika do c++'owej biblioteki dynamicznej?

Cytat: macszur
W C#'pie ładuję sobie dllkę i jak tu zrobić żeby this z C# przekazać do tej C++'owej Dll'k

RageX

  • Gość
# Lipiec 20, 2007, 00:24:57
"The 'this' keyword refers to the current instance of the class."
this jest wskaźnikiem na obiekt... podobnie jak base.

Nie przekazujesz do dll'ki żadnego this'a. To w C# tworzysz kod który obudowuje kod z C++. Tak więc nie puszczasz żadnego this'a do dll'ki.

Czyli co... chcesz aby w kodzie w c++ odwołać się do obiektu który zostanie stworzony z tego dll, czy odwołać się do obiektu stworzonego w c# za pomocą dll'ki?


Offline macszur

  • Użytkownik

# Lipiec 20, 2007, 00:39:33
no to spróbuję jaśniej :)
w html'u tworzę sobie obiekt ActiveX poprzez takie coś
<object id="sample"
classid="clsid:5f93d015-ab4e-411b-8fd9-c6939b1d011c"
height="150" width="129" style="background- color:Transparent;" >
</object>
to jest obiekt klasy zrobionej w C#, ten obiekt ładuje sobie parę f z dll'ki napisanej w C++,
w tej klasie dodatkowo chciałbym w konstruktorze tego obiektu albo gdziekolwiek indziej przekazać wskaźnik na siebie(this) do dll'ki C++'sowej żeby móc w C++ dll'ce korzystać z funkcji które ten obiekt w C# udostępnia
tutaj http://blogs.msdn.com/deeptanshuv/archive/2005/06/26/432870.aspx jest o tym jak korzystać z obiektów zrobionych C# w C++ ALE to ma tą wadę że tworzy się tutaj następny obiekt a ja chcę skorzystać z już gotowego
próbowałem klasę z C# przerobić na singletona ale wtedy nie udaje mi się poprawnie załadować na stronę (mimo iż wcześniej wywołuję medodę do zrobienia tej jednej jedynej instancji obiektu) czyli ten sposób odpada
jeszcze za moment zobaczę to http://msdn2.microsoft.com/en-us/library/aa910799.aspx - może to będzie to ....

// ps jeszcze wpadłem na taki pomysł aby w C# nie przekazywać obiektu całego do C++ tylko poszczególne funkcje ale to tylko taki pomysł ...
// edit 2:
coś takiego jak tu można jeszcze zrobić http://msdn2.microsoft.com/en-us/library/aa288468(VS.71).aspx(na samym dole, Registering Callback Methods ) ale jest to o tyle gorsze, że do każdej rzeczy na którą bym "wpadł" musiałbym pisać, wrapować i eksportować kolejną funkcję ...
« Ostatnia zmiana: Lipiec 20, 2007, 00:54:08 wysłana przez macszur »