Tijdje geleden liep ik tegen het feit aan dat het gebruik van COM binnen .NET best wel traag kan zijn, omdat die die dingen heel de tijd moet wrappen enzo... En ik was een utility aan 't schrijven waarbij heel veel bewerkingen op die comobjecten moesten plaatsvinden. Dus ik denk, combinatie managed/unmanaged c++, dat moet ultiem zijn, dus ik een voorbeeld gevonden van een mixed-mode class die die COM objecten gebruikt en als bridge kan funderen tussen C# en C++.
De snelheidswinst is uiteraard enorm, dus nut heeft het wel
http://forums.esri.com/Attachments/9898.zip
Nu het grote probleem... (En ja, ik weet het. Ben nogal een newbie wat betreft Visual C++. Vroeger wel wat C++ gehad, maar das redelijk weggezakt en blablabla...)
Hoe geef ik parameters door van C# naar C++? Ik heb een ProxyClass gemaakt in C++ waarvan ik een instance klus in C# en methodes (void) kan callen. Hoe geef ik bijvoorbeeld een simpele string door? of een int16?
Zou iemand mij hier iets zinnigs over kunnen vertellen a.u.b.? Mochten er extreme pro's zijn die nog wat ultieme tips kunnen geven hoe je COM objecten uit C# (bijv IFeature, een arcobjects klasse) kan doorgeven aan C++, dan zou ik dat echt super vinden... In C# zie ik namelijk bij het meegeven van een COM object als parameter "__com_........ " required. Maar misschien moet ik het eerst maar
eenvoudig houden, en het bij een string en int houden
.
De snelheidswinst is uiteraard enorm, dus nut heeft het wel
http://forums.esri.com/Attachments/9898.zip
Nu het grote probleem... (En ja, ik weet het. Ben nogal een newbie wat betreft Visual C++. Vroeger wel wat C++ gehad, maar das redelijk weggezakt en blablabla...)
Hoe geef ik parameters door van C# naar C++? Ik heb een ProxyClass gemaakt in C++ waarvan ik een instance klus in C# en methodes (void) kan callen. Hoe geef ik bijvoorbeeld een simpele string door? of een int16?
code:
1
2
3
4
5
6
7
8
| C++
void Gaan(Int32& number)
{
}
C#
Int32 bla = 0;
pc.Gaan(ref bla); /* doet het niet :? |
Zou iemand mij hier iets zinnigs over kunnen vertellen a.u.b.? Mochten er extreme pro's zijn die nog wat ultieme tips kunnen geven hoe je COM objecten uit C# (bijv IFeature, een arcobjects klasse) kan doorgeven aan C++, dan zou ik dat echt super vinden... In C# zie ik namelijk bij het meegeven van een COM object als parameter "__com_........ " required. Maar misschien moet ik het eerst maar
eenvoudig houden, en het bij een string en int houden