可能的话,就象这样说一个C(++)固定功能点(而不是代表)
typedef int (*MyCppFunc)(void* SomeObject);
页: 1
void CallFromCSharp(MyCppFunc funcptr, IntPtr param)
{
funcptr(param);
}
我需要能够从C#向一些老的C++级退学。 C++管理起来,但是这些班级不改课。
到目前为止,我不知道如何从c#中调用一个C++功能点,这是可能的吗?
可能的话,就象这样说一个C(++)固定功能点(而不是代表)
typedef int (*MyCppFunc)(void* SomeObject);
页: 1
void CallFromCSharp(MyCppFunc funcptr, IntPtr param)
{
funcptr(param);
}
我需要能够从C#向一些老的C++级退学。 C++管理起来,但是这些班级不改课。
到目前为止,我不知道如何从c#中调用一个C++功能点,这是可能的吗?
dtb是正确的。 这里是沼泽地的一个更详细的例子。 GetDelegateForFunctionPointer. 它应为你工作。
C++:
static int __stdcall SomeFunction(void* someObject, void* someParam)
{
CSomeClass* o = (CSomeClass*)someObject;
return o->MemberFunction(someParam);
}
int main()
{
CSomeClass o;
void* p = 0;
CSharp::Function(System::IntPtr(SomeFunction), System::IntPtr(&o), System::IntPtr(p));
}
C#:
public class CSharp
{
delegate int CFuncDelegate(IntPtr Obj, IntPtr Arg);
public static void Function(IntPtr CFunc, IntPtr Obj, IntPtr Arg)
{
CFuncDelegate func = (CFuncDelegate)Marshal.GetDelegateForFunctionPointer(CFunc, typeof(CFuncDelegate));
int rc = func(Obj, Arg);
}
}
查阅Marshal.GetDelegateForPointer。
delegate void MyCppFunc(IntPtr someObject);
MyCppFunc csharpfuncptr =
(MyCppFunc)Marshal.GetDelegateForFunctionPointer(funcptr, typeof(MyCppFunc));
csharpfuncptr(param);
我不知道这是否真正符合你的C++方法,尽管正如MSDN文件指出:
您不能使用这一方法,通过C++获得的职能点。
What is the use of default keyword in C#? Is it introduced in C# 3.0 ?
I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...
I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...
I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...
I have two EF entities. One has a property called HouseNumber. The other has two properties, one called StartHouseNumber and one called EndHouseNumber. I want to create a many to many association ...
How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...
Since I cannot order my dictionary, what is the best way of going about taking key value pairs and also maintaing an index?
Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...