谁会将dll文件中的这个函数:VARIANT_BOOL Connect_Net( [in] BSTR IPAdd,[in] long Portl)通过C#调用出来吗我在vs里面写了一段代码,结果不行:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace MyProject00
{
    class Program
    {
        [DllImport(@"F:\project\zkemsdk.dll", CallingConvention = CallingConvention.StdCall)]
        public static extern bool Connect_Net([MarshalAs(UnmanagedType.BStr)] String ipadd, long port);
       
        [return: MarshalAs(UnmanagedType.VariantBool)]
        static void Main(string[] args)
        {
             if (Connect_Net("192.168.1.200", 4370))
            {
                Console.WriteLine("Connect ok!!!");
                Console.ReadKey();
            }
            else
            {
                Console.WriteLine("Connect fail!");
                Console.ReadKey();
            }        }
    }
}这个dll文件是某公司的门禁系统的动态链接库。可是我使用exeScope却没有看到相关的函数。
我不知道为什么,有牛人可以帮我解答一下吗?感激不尽。如果需要看一下相关手册,留下邮箱吧~我发给你。C#VARIANT_BOOL Connect_NetBSTR IPAdd

解决方案 »

  1.   

    感觉那是一个com的dll,如果是普通dll,用variant类型有些脱裤子放屁的感觉
      

  2.   

    直接添加com引用
    VARIANT_BOOL Connect_Net([in] BSTR IPAdd, [in] long Portl)
    就是
    bool Connect_Net(string IpAdd, long Port1)
      

  3.   

    不懂就不要误人子弟,求你们了,你自己好好查查没VARIANT_BOOL和bool的差别,千差万别
      

  4.   

    不懂就不要误人子弟,求你们了,你自己好好查查没VARIANT_BOOL和bool的差别,千差万别查什么查。看清楚我说的。CLR会自动封送COM类型。
      

  5.   

    联系设备厂商,询问SDK是否发生变化,或下载最新的SDK
      

  6.   

    variant_bool 是变态, vb 系统内的, 好奇怪的取值.
      

  7.   

    我这边遇到的问题是,我想返回一个BOOL值,但在OCX控件里面,返回值与BOOL类型最相似的就只有VARIANT_BOOL类型,但不管我函数里面写什么,返回值都是VT_EMPTY,擦了,用LONG型代替值倒是暂时没出问题,但总感觉不好,主要是BOOL一眼就能直观看出,我们需要的返回值
      

  8.   

    不懂就不要误人子弟,求你们了,你自己好好查查没VARIANT_BOOL和bool的差别,千差万别查什么查。看清楚我说的。CLR会自动封送COM类型。
    大神你不要把每个人都想象成你那样,就几个字还不如不说,说了还容易误导别人