- PR -

vb.netでwin32API(RAS関係)

1
投稿者投稿内容
kazuki
会議室デビュー日: 2003/09/24
投稿数: 1
投稿日時: 2003-09-25 01:04
皆さんはじめまして
vb.netのWinformで開発することになりVB6との違いを感じでいます

早速ですが、vb.netでダイアルアップ接続を行うためにAPIを実行しようと
したのですがエラーが出てしまいます。
方法としてはVB6で動いていたRasEnumEntriesのサンプルプログラムをvb.netに
アップグレードして実行したところエラー632:構造体のサイズが間違っています
というエラーがでました。
その後、Declare文やRASENTRYNAME構造体をいじっているうちにエラー番号50
が返ってきたのですが、エラー番号の意味が調べてもわかりませんでした。
もし何かアドバイスをいただけたらありがたいです。
またはvb.netでRASを使ったサンプルを見かけた方がおりましたら
書籍でもかまいませんので教えてください
よろしくお願いします
ぢゃん♪
大ベテラン
会議室デビュー日: 2003/06/12
投稿数: 208
お住まい・勤務地: 都内
投稿日時: 2003-09-25 08:27
RASのプログラムについては知りませんけど……
引用:

kazukiさんの書き込み (2003-09-25 01:04) より:
早速ですが、vb.netでダイアルアップ接続を行うためにAPIを実行しようと
したのですがエラーが出てしまいます。
方法としてはVB6で動いていたRasEnumEntriesのサンプルプログラムをvb.netに
アップグレードして実行したところエラー632:構造体のサイズが間違っています
というエラーがでました。


Top > Insider.NET > .NET TIPS > Win32 APIやDLL関数に構造体を渡すには?
を参考にしていますか?
(本文はC#で説明されていますが、VB.NETのサンプルもあります。)
StructLayout属性とかFieldOffset属性とかを駆使して、.NET Frameworkでの構造体のメモリ配置を、APIの要求する構造体のメモリ配置に合わせる必要があります。

#そもそも、構造体を直したといっても、どう直したのかがわかりませんし……

引用:

その後、Declare文やRASENTRYNAME構造体をいじっているうちにエラー番号50
が返ってきたのですが、エラー番号の意味が調べてもわかりませんでした。


この様子を見ると、ちゃんと理解した上での修正とは読み取れないのですが……。
API呼び出しは(.NET Frameworkの管理外の)unmanagedな領域なので、ちゃんと理解した上で直さないと、非常に危険です。
APIとの間で受け渡す構造体を間違えて修正すると、深刻な不具合が発生するでしょう。


[ メッセージ編集済み 編集者: ぢゃん♪ 編集日時 2003-09-25 08:56 ]
1

スキルアップ/キャリアアップ(JOB@IT)