-
October 14th, 2008, 01:32 AM
#1
using c++ to instantiate a c# object?
Hi Everyone
I'm wondering how to instantiate a c# object and make a simple method call on the object using c++. I don't need any complex interactions or anything. All I want to be able to do is the following (written in pseudo c++):
Code:
C#Object obj; //instantiate the object
obj.getStringFromCPlusPlus("heheheheh"); /* pass a string from my c++ to the instantiated c# object, and the c# object will do the work from there */
I have googled around for some of this and it all seems really complicated, but then again the examples they give are more complex than this one. I really don't know where to start with this. Thanks for any help you can give me.
Thanks
-
October 14th, 2008, 06:48 AM
#2
Re: using c++ to instantiate a c# object?
Why do you need to do this? Why not either write everything in C# or everything in C++?
I'd imagine you can only do this in managed C++. Are you trying it in managed or unmanaged C++?
Succinct is verbose for terse
-
October 14th, 2008, 10:20 AM
#3
Re: using c++ to instantiate a c# object?
Ok, here's the situation. I have some code in c++ that does what I need it to, and I don't want to rewrite it in another language as it is complicated (it does dll injection to subclass a non-standard windows control so that it can intercept messages to that window). I'm writing a program to track my statistics and the statistics of those that I'm playing with in online poker (similar to other programs like PokerHUD) in real time. I have almost no experience in c++, and a fair amount of Java/c# experience, so it would be a lot easier for me to pass the messages that are captured in c++ to c# or java for parsing. Basically I just want to pass string messages between two programs that were written in different languages (so there's probably better ways to do it than instantiating objects? - sorry, I'm not a great programmer :|) I just really don't want to do everything in c++ because it will make the project less enjoyable as I will have to constantly look things up online that I don't know about .
As I have almost no c++ experience, I'm not sure about managed vs. unmanaged. I'm working in visual studio 2008, and there are no __gc declarations in the code (this means no managed types?). Is there a way to check if a project is managed/unmanaged?
edit: I suppose in the worst case I could just write the messages out to a file and then read them in from my program in another language.. How much slower do you think that would be comparatively?
edit2: If it might be easier to instantiate a c++ object in c#, I could probably do it that way as well. Also, if it is easier to work between c++ and Java (I'm not sure), I could do that as well.
Thanks
Last edited by nightmares; October 14th, 2008 at 10:41 AM.
-
October 14th, 2008, 11:36 PM
#4
Re: using c++ to instantiate a c# object?
Have a look at http://www.codeproject.com/KB/cs/unm...tomanaged.aspx for starters.
Normally you need a whole load of interface wrappers which are just one liners and quite tedious to write but this article provides an alternative.
Succinct is verbose for terse
-
October 15th, 2008, 09:22 AM
#5
Re: using c++ to instantiate a c# object?
Thanks for your help. I'm sure this way would work, however I found an alternate method, using WM_COPYDATA to send the strings between the c++ and c#. http://www.codeproject.com/KB/cs/wm_copydata_use.aspx While this doesn't address my problem as I had initially intended to (see OP), it works.
Thanks again
-
October 15th, 2008, 09:31 AM
#6
Re: using c++ to instantiate a c# object?
Originally Posted by cup
Why do you need to do this? Why not either write everything in C# or everything in C++?
I'd imagine you can only do this in managed C++. Are you trying it in managed or unmanaged C++?
"Managed C++" is completely obsolete [it existed only with V1 of .NET] the proper technology is C++/CLI. They are two totally different things.
TheCPUWizard is a registered trademark, all rights reserved. (If this post was helpful, please RATE it!)
2008, 2009,2010
In theory, there is no difference between theory and practice; in practice there is.
* Join the fight, refuse to respond to posts that contain code outside of [code] ... [/code] tags. See here for instructions
* How NOT to post a question here
* Of course you read this carefully before you posted
* Need homework help? Read this first
-
October 15th, 2008, 12:10 PM
#7
Re: using c++ to instantiate a c# object?
-
October 15th, 2008, 12:25 PM
#8
Re: using c++ to instantiate a c# object?
Guess I'm about 5 years behind - comes from maintaining legacy code where things still have to be done the old fashioned, clunky way.
Succinct is verbose for terse
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|