当前位置:编程学习 > C#/ASP.NET >>

C#中使用VARIANT_BOOL

谁会将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_Net BSTR IPAdd --------------------编程问答-------------------- 感觉那是一个com的dll,如果是普通dll,用variant类型有些脱裤子放屁的感觉
--------------------编程问答-------------------- 直接添加com引用
VARIANT_BOOL Connect_Net([in] BSTR IPAdd, [in] long Portl)
就是
bool Connect_Net(string IpAdd, long Port1) --------------------编程问答--------------------
引用 2 楼 caozhy 的回复:
直接添加com引用
VARIANT_BOOL Connect_Net([in] BSTR IPAdd, [in] long Portl)
就是
bool Connect_Net(string IpAdd, long Port1)

不懂就不要误人子弟,求你们了,你自己好好查查没VARIANT_BOOL和bool的差别,千差万别 --------------------编程问答--------------------
引用 3 楼 y601500359 的回复:
Quote: 引用 2 楼 caozhy 的回复:

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

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


查什么查。看清楚我说的。CLR会自动封送COM类型。 --------------------编程问答-------------------- 联系设备厂商,询问SDK是否发生变化,或下载最新的SDK --------------------编程问答-------------------- variant_bool 是变态, vb 系统内的, 好奇怪的取值. --------------------编程问答-------------------- 我这边遇到的问题是,我想返回一个BOOL值,但在OCX控件里面,返回值与BOOL类型最相似的就只有VARIANT_BOOL类型,但不管我函数里面写什么,返回值都是VT_EMPTY,擦了,用LONG型代替值倒是暂时没出问题,但总感觉不好,主要是BOOL一眼就能直观看出,我们需要的返回值 --------------------编程问答--------------------
引用 4 楼 caozhy 的回复:
Quote: 引用 3 楼 y601500359 的回复:

Quote: 引用 2 楼 caozhy 的回复:

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

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


查什么查。看清楚我说的。CLR会自动封送COM类型。

大神你不要把每个人都想象成你那样,就几个字还不如不说,说了还容易误导别人
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,