无法找到入口点(cpp)

这是与此类似的问题。

我想从C ++中导出一个简单的函数,由C#通过PInvoke调用。 这是我的函数定义:

 int fnValue()
{
    return 42;
}

这是.h文件中的导出定义:

__declspec(dllexport)  int fnValue();

这是我如何PInvoke功能:

    [DllImport("WhatDll.dll")]
    public static extern int fnValue();

很简单,对吧? 但我得到了一个

System.EntryPointNotFoundException:无法在DLL“WhatDll.dll”中找到名为'fnValue'的条目'

我使用dumpbin来检查WhatDll内部是什么,这就是我所拥有的:

00000000特性4CFB5C95时间日期戳太阳12月05日17:34:13 2010 0.00版本1序数基数4功能数4数名

序号提示RVA名称

   1    2 00011014 ?fnValue@@YAHXZ = @ILT+15(?fnValue@@YAHXZ)

请注意,函数名称fnValue后面有一些乱码。

这很令人费解。 任何想法?


试着写

extern "C"__declspec(dllexport)  int fnValue();

如果使用c ++编译器进行编译,请使用extern "C"导出或添加.def文件以指定导出名称。 另外__stdcall可能是必需的

链接地址: http://www.djcxy.com/p/44473.html

上一篇: Unable to Find an Entry Point (cpp)

下一篇: C# Interlocked Exchange