C#的代码如下:
namespace HardwareAttribute
{
    public class HardInfo
    {        /// <summary>
        /// cpu序列号 
        /// </summary>
        /// <returns></returns>
        public string GetCpuInfo()
        {
           return "DD";
        }
    }
}
AssemblyInfo.cs中的[assembly: ComVisible(true)]->[assembly: ComVisible(false)]
编译后生成HardwareAttribute.dll在Java里调用,如下:
package chenmin.io;public class DiskID { // 获得cpu序列号 (DLL中的方法名)
private native static String GetCpuInfo(); // 加载dll文件
static {
System.loadLibrary("HardwareAttribute");
}
// 返回cpu序列号
public static String DiskID() {
// 调用外部dll中的方法:
return GetCpuInfo().trim();
} public static void main(String[] args) {
System.out.println("DiskID = " + DiskID());
}
}错误内容:
提示GetCpuInfo该方法找不到

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【bug008】截止到2008-06-30 16:04:59的历史汇总数据(不包括此帖):
    发帖数:12                 发帖分:780                
    结贴数:11                 结贴分:680                
    未结数:1                  未结分:100                
    结贴率:91.67 %            结分率:87.18 %            
    值得尊敬
      

  2.   

    C# dll 和 C/C++ dll 不一样,C# dll 的指令是 MSIL,直接 loadLibrary 应该不成。
      

  3.   

    在Java里能调用C/C++写的Dll,没有问题
    但在Java里能调用C#写的Dll吗
      

  4.   

    不经处理按 C/C++ 写的 dll 方式调用恐怕不行。
      

  5.   

    关键是需要将C#写的Dll怎么处理,才能被Java调用