相关疑难解决方法(0)

通过函数指针在C#中调用C函数

我的C程序中有一个静态函数,该地址被传送到C#.NET程序.地址是正确的,但可以在C#中调用此函数吗?

有一些代码:

static void test_callback() 
{
    printf("test_callback called\n");
}

void callCSharpFunction ()
{
    HRESULT status;
    BOOL Started;
    DWORD result;
    char ptr[5];
    int p1;
    Started = FALSE;    

    status = CorBindToRuntimeEx(
                 NULL,
                 NULL,
                 0,
                 &CLSID_CLRRuntimeHost,
                 &IID_ICLRRuntimeHost,
                 (PVOID *)&Host
                 );

    if (FAILED(status)) {}

    status = ICLRRuntimeHost_Start(Host);

    if (FAILED(status)) {}

    Started = TRUE;

    p1 = (int)(&test_callback);
    ptr[0] = 0xFF & ((int)&test_callback >> 0);
    ptr[1] = 0xFF & ((int)&test_callback >> 8);
    ptr[2] = 0xFF & ((int)&test_callback >> 16);
    ptr[3] = 0xFF & ((int)&test_callback >> 24); …
Run Code Online (Sandbox Code Playgroud)

.net c c#

3
推荐指数
1
解决办法
3508
查看次数

标签 统计

.net ×1

c ×1

c# ×1