c#代码
[DllImport("CDLlDemo.dll", EntryPoint = "wori")]
public extern static int wori();
private void button1_Click(object sender, EventArgs e)
{
      textBox1.Text =wori().ToString();
}c++代码 cpp
int CDLlDemo::wori() {
return 3+5;
}h
#ifndef CDLLDEMO_H_
#define CDLLDEMO_H_class CDLlDemo {
public:
CDLlDemo();
virtual ~CDLlDemo();
virtual int wori();
};#endif /* CDLLDEMO_H_ */

解决方案 »

  1.   

    无法在 DLL“CDLlDemo.dll”中找到名为“wori”的入口点。
      

  2.   

    另外我的dll是直接在命令行 用命令生成的。。 
    g++ -I"C:\Program Files (x86)\Java\jdk1.6.0_37\include" -Wl,--add-stdcall-alias -shared -o E:\isNewWork\helloword\Debug\src\CDLlDemo.dll E:\isNewWork\helloword\Debug\src\CDLlDemo.o直接把。0文件生成dll了。
      

  3.   

    可有加.def文件导出函数?
    要么用def文件导出函数,要么在函数声明中加上__declspec(dllexport)
      

  4.   

    头文件没定义dll入口吧#ifdef YOURDLL
    #define YOURDLL extern "C" _declspec(dllimport) 
    #else
    #define YOURDLL extern "C" _declspec(dllexport) 
    #endifYOURDLL int your_function( );
      

  5.   

    感谢两位。  刚才已经找到了解决方案。  跟你们说的一样 是没入口的定义错了。  但是
     _ZN8CDLlDemo3caoEv
     _ZN8CDLlDemo3gunEv
     _ZN8CDLlDemo4woriEv _ZN8CDLlDemo7jianrenEv这是我定义的机会方法, 为什么莫名其妙的加了这么多字符?