You know even though I have been programming in C# for a bit I have never touched really on interop. I really would like to learn how to interface with C++. I know C++ basics and have programmed some windows with the C++/WINAPI even. I'm trying to start small with it and just return a string but the program crashes and doesn't let me see the error info. Here are my C++ files (dll win32 project file):
I grew up a Star Trek fan and never watched Star Wars movies. To this day I've not watched most Star Wars movies. As a result I rarely get these references, I have no idea what this post means.
Given the popular reactions these get I have to accept I missed out.
Recent Achievements
JuvenileDelinquent earned a badge Dedicated
DrWankel earned a badge First Post
DrWankel earned a badge Reacting Well
Supreme Spray LV earned a badge Week One Done
Genuinetonerink- Dubai earned a badge Week One Done
Question
sathenzar
You know even though I have been programming in C# for a bit I have never touched really on interop. I really would like to learn how to interface with C++. I know C++ basics and have programmed some windows with the C++/WINAPI even. I'm trying to start small with it and just return a string but the program crashes and doesn't let me see the error info. Here are my C++ files (dll win32 project file):
InteropTest.h
InteropTest.cpp
#include "stdafx.h" #include "InteropTest.h" extern "C" __declspec(dllexport) char * HelloFromDll() { char *result; result = "Hello from my DLL"; return result; }And finally my C# code (.net 4.5 console program):
Program.cs
class Program { [DllImport(@"InteropTest.dll")] [return:MarshalAsAttribute(UnmanagedType.LPWStr)] private static extern string HelloFromDll(); //[return:System.Runtime.InteropServices.MarshalAsAttribute(UnmanagedType.LPWStr)] static void Main(string[] args) { try { string strRetVal = HelloFromDll(); Console.WriteLine("Returned string: {0}", strRetVal); } catch { } Console.ReadLine(); } }The program fails on the dll call. It throws an accessviolationexception but hangs forever on that.
Link to comment
https://www.neowin.net/forum/topic/1137464-cc/Share on other sites
6 answers to this question
Recommended Posts