Thread Rating:
  • 449 Vote(s) - 2.86 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Win32API を利用するには?
04-25-2014, 01:50 PM, (This post was last modified: 04-25-2014, 02:00 PM by umemura.)
#4
RE: Win32API を利用するには?
下記サイト等を参考に、DLLインタフェースを、見よう見まねで作ってみましたが、
IP_ADAPTER_INFO が思ったように取得できず、お手上げ状態です。

■MSDN
http://msdn.microsoft.com/en-us/library/...s.85).aspx

そもそも、MACアドレス(物理アドレス)は、IP_ADAPTER_INFO のどのフィールドに入ってくるのかさえ、
よくわかっていません・・・。


Code:
{define-C-struct public IP_ADDR_STRING
  field public Next:{CArray-of IP_ADDR_STRING}
  field public IpAddress:CString
  field public IpMask:CString
  field public Context:int
}
{define-C-struct public IP_ADAPTER_INFO
  field public Next:{CArray-of IP_ADAPTER_INFO}
  field public ComboIndex:int
  field public AdapterName:CString
  field public Description:CString
  field public AddressLength:int
  field public Address:int
  field public Index:int
  field public Type:int
  field public DhcpEnabled:int
  field public CurrentIpAddress:{CArray-of IP_ADDR_STRING}
  field public IpAddressList:IP_ADDR_STRING
  field public GatewayList:IP_ADDR_STRING
  field public DhcpServer:IP_ADDR_STRING
  field public HaveWins:int
  field public PrimaryWinsServer:IP_ADDR_STRING
  field public SecondaryWinsServer:IP_ADDR_STRING
  field public LeaseObtained:int
  field public LeaseExpires:int
}

{define-dll-class public Iphlpapi
  {defaults
      calling-convention = stdcall,
      string-rep = CStringUTF16
  }

  {constructor public {default}
      {construct-super {SharedLibrary "iphlpapi.dll"}}
  }

  {dll-method public {GetAdaptersInfo
                         pAdapterInfo:IP_ADAPTER_INFO,
                         pOutBufLen:int ||何を渡すべき?
                     }:int

  }
}
{CommandButton
    label = "Show MAC Adress",
    {on Action do
        let dll:Iphlpapi = {Iphlpapi}

        def p = {IP_ADAPTER_INFO}
        let result:int =
            {dll.GetAdaptersInfo
                p, 100000
            }

        {popup-message p}
    }
}

型の定義の対応が間違っていますかね?
C言語の知識がなく、とくに下記のような内容は、おもいっきり無視してます。

■外部ライブラリ呼び出しに使うC構造体
http://developers.curlap.com/faq/49-faq-...07-52.html


それとも、C++のDLLだからダメ、とかもありますかね?

■C++で作成したDLLについて
http://developers.curlap.com/faq/48-faq-...-cdll.html



Messages In This Thread
Win32API を利用するには? - by umemura - 04-23-2014, 04:06 PM
RE: Win32API を利用するには? - by hokada - 04-24-2014, 02:10 PM
RE: Win32API を利用するには? - by kay - 12-12-2016, 10:32 AM
RE: Win32API を利用するには? - by umemura - 04-25-2014, 01:50 PM
Forum Jump:


Users browsing this thread:
1 Guest(s)

MyBB SQL Error

MyBB has experienced an internal SQL error and cannot continue.

SQL Error:
1017 - Can't find file: 'mybb_threadviews' (errno: 2)
Query:
INSERT INTO mybb_threadviews (tid) VALUES('1077')