[DllImport("k8110.dll")]
        static extern bool CAN_Open(long iIndex);
        //Public Declare Function CAN_Open Lib "k8110.dll" (ByVal iIndex As Long) As Boolean
 在VB 下调用是可以的,在 vs2005 下就说 没有找到该模块,我的k8110.dll都已经拷贝过去了啊
vb 转 C# 的 代码? 有什么问题吗?

解决方案 »

  1.   

    把该Dll文件复制到你的Exe文件目录下
    还有一种可能是这个Dll还依赖其他 的Dll文件,如果缺少的话也会报楼主的那个错
      

  2.   

    是不是缺少k8110.dll本身要调用的dll呢?
      

  3.   

    这些,我都考虑到了啊,可是还是不行,我把VB 里的代码复制到 vb.net 2005 里去,把 K8110.dll 和其他的 dll 复制的满地都是,还是不行,是不是 .net 不支持 底版本生成的 DLL
    K8110.dll 是 vb6 生成的。
      

  4.   

    zhaoliang_chen(龙行天下) 
    怎么转啊,教教 我啊
      

  5.   

    你应该采用引用的方式, 将这个dll 引用到你的项目里面去这样你就可以直接使用这个dll里面的所以类了。[DllImport("k8110.dll")]
    这个一般是用来调用windows本地的一些dll或是API用的。如果是自己开发的组件, 可以直接引用使用。
      

  6.   

    据我所知,某些VB下的名命空间在C#下是要换的,有些系统类也只能在VB下用,你最好查一下命名空间及引用是否都正确.
      

  7.   

    to :shuo_shu(取个名字还真难) 我引用了,还是不行。
    to :bluemoonright(大老粗) ,我是调用的是出错,不是build 的时候出错。
    谢谢大家呀。
    我用loadlibrary("路径"),发现得到的是 0。
    搞了一个下午,也没有解决?
      

  8.   

    ??
    [DllImport("DLLName",EntryPoint="FunctionName",
    CallingConvention=CallingConvention.StdCall]
    public static extern bool Create (string name);
      

  9.   

    就是这个,不行,留 下Email ,我把dll 发给你们
      

  10.   

    c#中long是64位的,改成int试试
      

  11.   

    [DllImport("k8110", EntryPoint="CAN_Open", CallingConvention=CallingConvention.StdCall)] 
    static extern bool CAN_Open(long iIndex);---------------------
    [DllImport("k8110.dll", EntryPoint="CAN_Open", CallingConvention=CallingConvention.StdCall)] 
    static extern bool CAN_Open(long iIndex);---------------------------------------
            [DllImport("k8110.dll")]
            static extern bool CAN_Open(int iIndex);
    -------------------------------------------
            [DllImport("k8110")]
            static extern bool CAN_Open(int iIndex);
    ---------------------------------------------------把 Int 改成 long ,都不行
      

  12.   

    在vb.net里进行包装,然后再c#里调用vb.net的类库
      

  13.   

    现在问题是 vb.net 也不能调用这个 dll
      

  14.   

    whmjw(明年今日十年之后) ( ) 信誉:95  2006-4-27 15:30:35  得分: 0  
     
     
       
    把该Dll文件复制到你的Exe文件目录下
    还有一种可能是这个Dll还依赖其他 的Dll文件,如果缺少的话也会报楼主的那个错  
     
    可能是这样。
    你那个dll是什么写的?功能是什么。你能猜出他内部是怎么实现的么?大概的说说才好判断。