C#使用C/C++的dll遇到的奇怪问题
//   cmdll.c 
 //   compile   with:   /LD   /MD 
 int   __declspec(dllexport)   SampleMethod(int   i) 
 { 
             return   i*10; 
 } 
 //cmdll.cpp 
 //compile   with:/LD   /MD 
 int   __declspec(dllexport)   SampleMethod(int   i) 
 { 
             return   i*10; 
 } 
 两个文件完全相同,编译都生成cmdll.dll文件 
 第一个文件产生的dll在C#中可以调用,第二个提示找不到SampleMethod的入口点 
 public   partial   class   Form1   :   Form 
    {    
       [DllImport( "Cmdll.dll ")] 
       public   static   extern   int   SampleMethod(int   x); 
    public   Form1() 
                         { 
                                     InitializeComponent(); 
                                     //SnmpCleanup(); 
                                     //MessageBox(0,    "abc ",    "def ",   0); 
                                     MessageBox.Show( " "   +   SampleMethod(1));                                       
                         } 
 }
------解决方案--------------------用w32asm查看dll的输出   
 第一个因该是标准输出SampleMethod 
 第二个可能是非标准输出SampleMethod@@一串数字
------解决方案--------------------解决方法 建def文件 变成标准输出
------解决方案--------------------C和C++编译后对函数名的解析是不一样的,加个extern  "C "应该就可以了