約 2,735,298 件
https://w.atwiki.jp/myfavoritepcsettings/pages/217.html
目次 ↑ 概要 URL インストール 設定 プラグイン メモ 日本語への対応が不十分なので使い方でカバーする Aliases/Groups機能を使いこなす 類似アプリ タグ 概要 インクリメンタル検索可能なキーボード操作志向のランチャ Windows Vista/7 のスタートメニューの検索ボックス(プログラムとファイルの検索)をさらに便利にしたようなもの 実行時に都度検索する(インデクスも作らない) アプリケーションの実行ファイルのパスをランチャ用に登録する手間が不要で、アプリをインストールしたら即座にこのランチャからも起動できるようになる その代わりに検索に時間がかかるので、検索範囲を広げすぎないのがコツ きめこまかなカスタマイズが可能、プラグインでの機能拡張も可能 日本語への対応は不完全なので、割り切って使う 基本的にポータブル、検索対象フォルダも相対パスで指定可能 URL http //www.donationcoder.com/Software/Mouser/findrun/ (本家; 英語) http //www.donationcoder.com/screencasts/farr/ (動画解説; 英語) http //techreviews.in/find-and-run-robot-redefine-searching-and-launching-application-in-windows/ (解説記事; 英語) http //www.gigafree.net/utility/findandrunrobot.html (解説記事; 日本語) http //www.pallab.net/2009/12/21/farr-is-a-launchy-alternative-for-power-users/ (解説記事; 英語) http //www.freewaregenius.com/2010/11/15/find-and-run-robot-a-brilliant-search-box-style-launcher-and-task-management-app/ (紹介記事; 英語) インストール 普通にインストーラで もしくは、インストーラ(FindAndRunSetup.exe)を FindAndRunSetup.zip にリネームして展開すればポータブル版として使用可能 設定 Settings Launching Files Options for Launching Programs and Documents [ ] Always launch shortcuts directly instead of resolving links (* Custom Document Opener を使う場合) [X] Use file launch helper utilityMethod 1 - ShellExecute (DEFAULT; original method) Custom Document Opener [X] Use custom tool to open documents<Portable Extension Warlockディレクトリ>\PEW_Launch.exe Settings Keyboard Interface Keyboard Interface [X] Delay search start based on inter-keypress interval and length of search string Settings Window Options Window Options [ ] Focus FARR window on top [X] Show on TaskBar when active Focus Preservation (*) Hide When Focus is Lost (フォーカスを失った状態での他アプリへの誤入力を避ける) Settings Search Behavior Settings Advanced Visuals Visual Display Skin [X] Use fancy skinned displaySkin File GNOME-Blue.skn (アクティブ/非アクティブの違いがはっきりしている) [X] Use custom result background color clInfoBk [X] Use custom search background color clWhite Miscelaneous Visual Options [ ] Alpha Fade into View (性能の低いPCでの表示待ちを避ける) Tray Icon Image Original Custom Window Titlebar Find and Run Robot %version% Settings Font Overrides Advanced Custom Font Configuration [X] Override default font settings with custom settings below Set EditBoxFont MS UI Gothic/Bold/11/Black/JananeseEditBox Height 22Set Small-Icon Result Font MS UI Gothic/Regular/10/Black/JananeseResult Height 20SlideLine Height 14Set Large # (デフォルトのまま)Set Plugin Memo Font (デフォルトのまま) プラグイン FScript Find and Run Robot 用のプラグインを Javascript 等のスクリプト言語で書ける Akete ユーザが定義したファイル関連付けに従ってファイルを開く FARR Multi Monitor メインウィンドウをアクティブモニタに表示する(センタリングやリサイズのしかたも選べる) 極端に大きさが違うモニタを組み合わせている場合は、センタリングやリサイズの挙動が逆に邪魔になるので、Display FARR on active monitor 以外の全てのチェックボックスをオフにしたほうがいいかも FarrMostRecentlyUsed キーワード mrum, mrup, mrua, murr, mrul で最近使ったファイルやプログラムの一覧を表示 キーワード mru で、それらのエイリアスのメニューを表示 KlipKeeper キーワード kk でクリップボード履歴を表示、クリップボードへの再取り込みや最後に開いていたウィンドウへのペーストなどができる クリップボード取り込み時に出す音のデフォルト設定(default.wav)は耳障りなので、pop2.wav あたりに変更する FCalc キーワード fc で簡易電卓 FARRAltTab キーワード tab で Alt+Tab の置き換えになる(参考:VistaSwitcher) FARRTray (System Tray) キーワード tray でシステムトレイアイコンにアクセスする FARRTray.zip(トレイアイコン表示あり)でエラーが出る場合は FARRTray-no icons.zip(デフォルトアイコンのみ)を試してみるとよい FProcs キーワード fprocs でプロセス一覧を表示し、選んだプロセスのウィンドウを前面に持ってくる ProcessKill キーワード pkill でプロセス一覧を表示し、選んだプロセスを強制終了する FARRGoogleCalender キーワード gcal で自分の Google Calender の直近の予定を表示する FarrLocate32 キーワード loc でLocate32検索結果を表示できるが、日本語が文字化けするので残念 LocateからはUTF-8で結果が返ってきているので、それをCP932に変換してから Find and Run Robot に渡してやればよいはずだが、プラグインがそこまで対応していない Locate32の新規インスタンスを起動するコマンドを呼び出すAliasを作ればほぼ代用になる Locate32 (Name=$$1) | ..\Locate32\Locate32.exe -i -P0 -r -t* -- $$1 FarrFox キーワード ff で Firefox のブックマークを検索できるが、日本語が文字化けするので残念 これもたぶん事情は FarrLocate32 と同様 [2012-11-11 日] FirefoxからエクスポートしたHTML形式ブックマークファイルをShiftJISに変換して渡すと文字化けしない [2012-11-11 日] IEのお気に入りは文字化けしないので、BookSyncを使ってFirefoxのブックマークをIEのお気に入りに同期させ、IEのお気に入り経由で使うとよい あくまでページタイトルとURLが検索対象で、Firefoxのブックマークで付与した「キーワード」では検索してくれない FFTab キーワード fftab で Firefox のタブ切り替えができる(はずだがなぜか動作しない?) メモ 日本語への対応が不十分なので使い方でカバーする 残念ながら、2バイト目に「\」が含まれる2バイト文字(いわゆる「ダメ文字」)を含む文字列の検索が正常に動作しない。開発サイト DonationCoders.com のフォーラムでも2008年頃からUnicode対応の要望は継続的に上がっているが、解決される見込みは薄い。どうやら、2バイト文字対応していない外部のライブラリを組み込んでいるかららしい。ただし、使い方でカバーすることは難しくない: Find and Run Robot から起動させるアプリやバッチファイルのファイル名、それらを置くフォルダのパスには、いわゆる「ダメ文字」を含めないようにする 2バイト文字を含んだファイル名やパス名によって問題が生じるアプリは他にも多いので、この習慣はいずれにせよ必要 文書ファイル類の検索には Find and Run Robot 以外のデスクトップ検索専用アプリ(Locate32やXSearchなど)を利用する そもそも文書ファイル類の検索には、デスクトップ検索専用アプリの方が向いている(検索が高速、タイムスタンプ等での絞り込みも可能、など) 文書ファイル類のファイル名にいわゆる「ダメ文字」を含めないようにするという運用はさすがに無理 Aliases/Groups機能を使いこなす Core Aliases の定義は上書きできず、できることは myaliases.alias への「追加」だけ。しかし、あらかじめ用意されているAlias(Core Aliases)の定義は英語圏向けのものばかり。しかも「news」とか「search」とかいうわかりやすい Alias 名が Core Aliases に使われてしまっている。日本語でのニュース閲覧やウェブ検索は、別のAlias名で我慢するしかないのか? 実は、Alias名は重複してもOKなので、myaliases.alias に全く同じAlias名で自分が使いやすい定義を「追加」するだけでよい。Score 値を Core Aliases より大きい値にセットしておけば、Core Aliases より優先される。Core Aliases の元の定義も有効にしたまま併用できる。 Alias「news」にGoogle News 日本版を追加する例: Alias Trigger Text news Score 2000.0 Regular Expression Pattern ^news (.*) Result(s) Google News 日本 - $$1 | http //www.google.com/news?hl=ja q=$$1 Alias名が重複してもOKであることを利用して、オプションのキーワードの有無を見分けて異なる挙動を割り当てることもできる。 オプションキーワードなし向けの設定 Alias Trigger Text man Regular Expression Pattern ^man\s*$ Result(s) Linux Man Pages | htmlviewurl http //man.he.net/ オプションキーワードあり向けの設定 Alias Trigger Text man Regular Expression Pattern ^man\s+(.+) Result(s) Linux Man Pages - $$1 | htmlviewurl http //man.he.net/?topic=$$1 section=all PuTTY や WinSCP には接続設定を保存して再利用する機能(接続セッション)があるが、接続セッションごとに個別のファイルに保存するものではない。なので、ファイル関連付けを使って接続セッションを一発で起動することはできず、アプリケーションをいったん立ち上げてからその中で接続セッションを選ぶ、という2段階の操作になってしまう。ただし Find and Run Robot の Alias で Result Filter For Regex パラメータを使うと、Find and Run Robot のエディットボックスにセッション名の部分文字列だけ入力して PuTTY や WinSCP の接続セッションを直接起動することができる: PuTTY 用の設定 Alias Trigger Text putty Regular Expression Pattern ( putty でも ssh でも受け付ける) ^(? putty|ssh) (.*)$ Result Filter For Regex $$1 Results (セッション名は二重引用符で囲む) C \path\to\putty.exe -load "my putty session foo" C \path\to\putty.exe -load "my putty session bar" ... WinSCP 用の設定 Alias Trigger Text winscp Regular Expression Pattern ( winscp でも scp でも受け付ける) ^(? win)?scp (.*)$ Result Filter For Regex $$1 Results (セッション名は二重引用符で囲んではならない、つまり空白を含むセッション名は不可) C \path\to\winscp.exe my-winscp-session-foo C \path\to\winscp.exe my-winscp-session-bar ... Find and Run Robot のエディットボックスにセッション名の一部を入力するだけで目的のセッションを起動できる: 「ssh foo」などと入力 ⇒ PuTTY のセッション my putty session foo を起動 「scp bar」などと入力 ⇒ WinSCP のセッション my-winscp-session-bar を起動 アプリケーションに渡す引数の入力とResult Filter For RegEx による絞り込みとを両立させることもできる。 設定 Alias Trigger Text weblio Regular Expression Pattern ^weblio(\S*)(? \s+(.+))? Result Filter For RegEx $$1 Result(s) Weblio 英和・和英 [eiwa][waei] (キーワード=$$2) | http //ejje.weblio.jp/content/$$2 Weblio 英語例文 [reibun] (キーワード=$$2) | http //ejje.weblio.jp/sentence/content/$$2 Weblio 英語類語 [ruigo] (キーワード=$$2) | http //ejje.weblio.jp/english-thesaurus/content/$$2 Weblio 共起表現 [kyouki] (キーワード=$$2) | http //ejje.weblio.jp/concordance/content/$$2 使い方 「weblio」の後に空白をあけずに文字列を続けると、それが Result Filter として絞り込みに使われる 空白をあけた後に続けた文字列は、検索文字列としてURLの一部に埋め込まれる $$1 も $$2 も省略可能 使用例 - 「incremental」を使った英語例文を検索する(「weblioreibun」と全部打たなくてもOK) webliore incremental アプリケーションに渡す引数の入力とResult Filter For RegEx による絞り込みとを混在させることもできる。 設定(説明用サンプル) Alias Trigger Text mysample Regular Expression Pattern ^mysample (.*) Result Filter For RegEx $$1 Alias定義(説明用サンプル) mysample abc | http //abc.com/ mysample 123 | http //abc.com/123.html mysample $$1 | http //google.com/search?q=$$1 使い方の例(最上位に来る検索結果) $$1=abc の場合 ⇛ http //abc.com/ $$1=123 の場合 ⇛ http //abc.com/123.html $$1=xyz の場合 ⇛ http //google.com/search?q=xyz 類似アプリ Executor Launchy Portable Start Menu PStart タグ @モバイル @会社 @自宅
https://w.atwiki.jp/ohden/pages/641.html
log4net Windows 7 Professional Visual Studio 2013 Professional log4net 1.2.13 log4net cf.) http //blogs.gine.jp/taka/archives/1344 http //d.hatena.ne.jp/shima111/20060703/p1 http //www.atmarkit.co.jp/ait/articles/0712/25/news121_2.html http //bleis-tift.hatenablog.com/entry/20091115/1258285313 log4netはスレッドセーフな作りらしい。 install 使い方 ◆log4net.Appender 一覧 AdoNetAppender ADO.NETを用いてdatabaseへメッセージを出力する。 AnsiColorTerminalAppender AspNetTraceAppender BufferingForwardingAppender ColoredConsoleAppender ConsoleAppender コンソールへメッセージを出力する。 DebugAppender EventLogAppender Windowsのイベントログへ出力する。 FileAppender 指定ログファイルへ出力する。 ForwardingAppender IAppender IBulkAppender LocalSyslogAppender ManagedColoredConsoleAppender MemoryAppender NetSendAppender メッセージをWindowsのNetSendコマンドを使って送る。 OutputDebugStringAppender RemoteSyslogAppender RemotingAppender RollingFileAppender 色々な条件を指定して、出力のルールを決める事ができる。一定期間や一定サイズでログファイルを分割してメッセージを出力するような事ができる。 SmtpAppender メッセージをSMTPを用いてメールで飛ばす。 SmtpPickupDirAppender TelnetAppender TextWriterAppender TraceAppender トレース情報出力。 UdpAppender ~ tips ~ MDCとNDC 出力ログの書式指示子 ASP.NETからイベントログに出力できない loggerから出力ファイル名を取得する CSharp/tools/log4net/tips/ 更新日: 2015年03月04日 (水) 16時52分11秒 名前 コメント すべてのコメントを見る
https://w.atwiki.jp/orika_makingsupport/pages/45.html
ここではフリーソフトの「Paint.NET」でのフィルターの作成方法を紹介していきます あくまで一例ですので参考までにどうぞ Paint.NET公式ページ→Paint.NET ①Paint.NETでフィルターを掛けたいオリカを開きます 尚、今回使用する画像については加工や転載が許可されているものを使用しています 画像の使用に関しては著作権のページをご覧下さい 今回使用させていただいた画像の掲載元→(仮)様 ②次にレイヤを一つ追加します ③そしたら、このレイヤに適当に線を引きます ④次に、Paint.NETのプラグインで入手できるSmudgeというのを使用します Smudgeに関するページ→Smudge ⑤Smudgeを使用すると以下のようなウィンドウが表示されます このツールを使って先ほど適当に引いた線をいじってみましょう いじってみるとこんな感じに 拡大図 ⑥次にガウスというツールを使用します ガウスは最初からPaint.NETに入っているかと思います ⑦ガウスを使用し適当な感じにぼかします ⑧レイヤのプロパティで不透明度を少し下げましょう ⑨最後に2つのレイヤを結合させれば完成です 今回のフィルターは見栄えが悪いですが、作り方次第では綺麗に作ることが出来ると思います 取り合えずこんな感じで簡単に作成できるので、お悩みの方はぜひ試してみてください^^ 以上で説明を終わります。 拙い文章で理解し難かったとは思いますが、読んでいただきありがとうございます。 画像が見づらい!という場合は、このページの下のほうに添付ファイルという形で今回使用した画像が置いてあるのでそちらをご覧下さい。 掲載した順番に添付されてます(だいぶ余計なのも混ざってますがご了承下さい) 分からないことや質問がありましたら、トップページ下のコメントフォームや初心者用質問掲示板にてお知らせください。
https://w.atwiki.jp/kaijinmato/pages/1756.html
【名前】 滅亡迅雷.net 【読み方】 めつぼうじんらいねっと 【登場作品】 仮面ライダーゼロワン 【詳細】 『仮面ライダーゼロワン』に登場する敵対組織。 崩壊した都市「デイブレイクタウン」を拠点とし、人間を滅亡させることを目的に「ヒューマギア」を暴走させマギアという怪物に変貌させるサイバーテロリスト集団。 ゼツメライザーとゼツメライズキーと呼ばれる特殊な装置を持ち、ヒューマギアにセットして暴走させている。 彼らの理念の根本がどこにあるかは不明。 飛電インテリジェンスの先代社長、飛電或人の祖父の飛電是之助が死去してから活動を開始している素振りもある。 メンバーは「滅(ホロビ)」、「迅(ジン)」。 更に第14話では「亡(ボウ)」、「雷(カミナリ/イカヅチ)」の存在が示唆される。 【デイブレイクタウン】 現在は崩壊した都市。 かつては飛電インテリジェンスや多くの企業が共同していた保有する実験都市「名称不明」で、初期型ヒューマギアの開発拠点だった。 だが、大量の初期型ヒューマギアが暴走する事態が起き被害が拡大、何らかの形で衛星らしきものが落ち崩壊したと思われる。
https://w.atwiki.jp/lyokun/pages/20.html
設定ファイル(web.config) エラーの内容を表示設定 configuration system.web customErrors mode="Off"/ ASP.NET2.0からASP.NET4.0にしたときエラーが起こる場合の設定 httpRuntimeの設定を追加 system.web httpRuntime requestPathInvalidCharacters="" requestValidationMode="2.0" / /system.web 設定ファイルからの読み出し System.Configuration.ConfigurationManagerで読みだす。 ただし、System.configurationを参照設定しないと、出てこない。 System.Configuration.ConfigurationSettings.AppSettings は古い形式ですhttp //architect360.apricot-jp.com/500tips/systemconfigurationconfigurati.html
https://w.atwiki.jp/japan_dorama/pages/5005.html
amazonで探す @楽天で #FINAL+CUT を探す! 火21フジ 2018.01.09~2018.03.13 6.9% 公式HP wikipedia 前 明日の約束 次 シグナル 長期未解決事件捜査班 Hulu NETFLIX dTV PrimeVide U-NEXT TVer Paravi GYAO youtube検索 / Pandora検索 / dailymotion検索 / bilibili検索 1 母のため僕はテレビに復讐する 2018/01/09 7.2% 2 消された目撃証言 2018/01/16 6.5% 3 特ダネは大誤報!? 2018/01/23 6.5% 4 母を犯人にした男 2018/01/30 6.5% 5 疑惑を真実にした男 人気司会者の正体! 2018/02/06 6.7% 6 愛する人へ… 真犯人は、君の兄さんだ 2018/02/13 6.8% 7 真犯人はそこにいた… 一線を越えた夜! 2018/02/27 6.9% 8 折り紙が語った真実… 愛する君に復讐を 2018/03/06 7.1% 9 "殺人犯"の衝撃告白!?ついに真犯人登場緊迫 逆転の末テレビで明かされる真相とはメディアへの復讐完結最終回2時間SP!! 2018/03/13 7.5%
https://w.atwiki.jp/sitescript/pages/482.html
Filmix.net Filmix.net http //filmix.net/ オンラインホスティングサービス。 ロシア語吹き替えのTVドラマ、映画、など。 スクリプトをインストールversion 0.1 2013.08.10 up 修正情報 version 0.1 2013.08.10 up 名前 コメント
https://w.atwiki.jp/visualstudio/pages/25.html
目次 発売年 概要 エディションの種類 対応OS 対応.NET Framework 含まれる開発環境 サポート終了日 発売年 2002年 概要 .NET Frameworkに対応した初の開発環境 .NET Framework 1.0対応 全ての言語の開発環境が一つに統合 当初の名前はVisualStudio .NET エディションの種類 Visual Studio .NET Enterprise Architect MSDN Deluxe Edition Visual Studio .NET Enterprise Architect Visual Studio .NET Enterprise Developer MSDN Deluxe Edition Visual Studio .NET Enterprise Developer Visual Studio .NET Professional MSDN Deluxe Edition Visual Studio .NET Professional Visual Studio .NET Academic Visual Basic .NET Standard Visual C# .NET Standard Visual C++ .NET Standard 対応OS Windows NT 4.0 sp6a以上 Windows 2000 SP2以上 Windows XP Windows Server 2003 対応.NET Framework .NET Framework 1.0 含まれる開発環境 Visual Basic Visual C# Visual C++ サポート終了日 メインストリーム サポート終了日2007/07/10 延長サポート終了日2009/07/14 参考 マイクロソフト プロダクト サポート ライフサイクル マイクロソフト サポート ライフサイクル
https://w.atwiki.jp/hisam/pages/51.html
VB.NET からVC++とかのUnmanagedDLLを使うやりかた ○前提 使われる側: VC++などで作成されたアンマネージコードDLL 作成方法はここでは言及しない 使う側: VB.NET(たぶん全バージョン) #検証にはVB2008、.NET Framework2.0を使用しました ○前提知識 VB6からVC++DLLを呼ぶ方法: Declare Function 関数名 Lib ファイル名 (引数) As 返却値型 #VB.NETでも同様の書き方が出来るため(以下の説明でも使用) VB.NETから使える書き方もある(ここでは言及しない) ネイティブコード: CPUが解釈できるマシン語バイナリのコード。 ネイティブコードで出来たアプリケーションは ネイティブアプリケーション。 WindowsネイティブアプリケーションはWindowsOS上で (必要なライブラリがあれば)動作する。 マネージコード: CLR(≒.NET Framework)上で 動くコード。 WindowsOSだけでなく(対応するバージョンの).NET Frameworkを インストールしてなければ動作しない。 厳密には: CLI:仕様 CLR:CLIのMicrosoftによる実装 CIL:CLRが解釈するコード VES:CLI仮想マシン。CILをネイティブコードに翻訳して実行する マネージメモリ: マネージコードで通常管理されるメモリ領域。 つまりVES仮想マシン上におけるメモリ。 ※要注意: マネージメモリはアンマネージコードに渡してはならない。 もしテストで正常に動いたとしてもそれはあくまで偶然であり、 常に正常に動くとは限らない。 ↑マネージメモリ空間内でデータは勝手に移動されることがあるため アンマネージコード: CLR上で 動くコード以外(≒ネイティブコード)。 アンマネージメモリ: アンマネージドコードで使われるメモリ領域。 つまりOS上におけるメモリ。 マーシャリング マネージコードとアンマネージコードの橋渡しをすること。 アンマネージコード間では単にインターフェースが相当するが、 マネージコードではインターフェースを解釈・仲介するために さらにマーシャリングが必要になる。 ↑メモリ空間が異なるため マーシャラ マーシャリングするもの。VB.NETでは System.Runtime.InteropServices.Marshalクラス ○マネージメモリとアンマネージメモリ アンマネージドコード側すべてアンマネージメモリ アンマネージドコードとマネージドコードのインターフェイスすべてアンマネージメモリ ただし標準的な数値型は自動的にマーシャリングされる マネージドコード側コードで扱えるのはマネージドメモリのみ ポインタで受け渡されたインターフェース(文字列、構造体等含む)は自前でマーシャリングして、マネージドメモリにコピーしてから使う。 またポインタを渡す場合も自前でマーシャリングする ○方法(inとoutはDLL側から見た場合で記載) 以下の例はShapefile C Library V1.2を アンマネージDLL使用例としています。 APIはここ参照 数値型の場合: ①渡す値(in) DLL側のインターフェースがdouble、int、long、bool等の 数値型の場合、渡す値(in)はByValとする。 ②受け取る値のシングルポインタ(out)と 受け渡し両方の値のシングルポインタ(in/out) DLL側のインターフェースがdouble*、int*、long*、bool*等の 数値型のポインタの場合、値はByRefにするだけとする。 (ポインタという意識はしない=ByRef自体がポインタだから) ①②双方とも、自動的にマーシャリングされるので VB6との相違は意識しなくともよい。 (=昔のVBからDLLを使う意識で問題なし) 利用例は以下例2参照 文字列型の場合: ①渡す文字列(in) DLL側のインターフェースがconst char*、LPCSTR等の 文字列ポインタで引渡し文字列を渡す(in)場合、 値型と同様にByValで問題なし。 ただし自動マーシャリングによりinなのに変数内の値が 変わっていることがある。 そのような場合はラッパークラスを作って、呼び出しを 内部的に二重化すると解決できる。 例1(ラッパー): Public Module Module1 ・ラッパークラス Public Class cSHPWrapper ・ラッパーメソッド Public Shared Function SHPOpen(ByVal stShapeFile As String, ByVal stAccess As String) As IntPtr Return Module1.SHPOpen(stShapeFile, stAccess) End Function End Class ・VB.NET側宣言 Public Declare Function SHPOpen Lib "shapelib.dll" (ByVal pszShapeFile As String, ByVal pszAccess As String) As IntPtr ・コード Dim hSHP As IntPtr = cSHPWrapper.SHPOpen(fname, "rb") End Module ②受け取る文字列(out)と 受け渡し両方の文字列(in/out) DLL側のインターフェースがchar*、LPSTR等の 文字列ポインタで文字列を受け取る(out)場合、 または文字列を受け渡し両方する(in/out)場合、 文字列はStringBuilder型にして、ByValで受け渡す。 StringBuilderはVB側では固定長文字列(NULL終端)のような認識の 使い方(VC++DLL側から見ればLPTSTR≒char*そのもの) Stringにするには.ToStringすればいいだけ。 例2(数値の例/文字列受け取りの例): ・DLL側I/F DBFFieldType DBFGetFieldInfo( DBFHandle hDBF, int iField, char * pszFieldName, int * pnWidth, int * pnDecimals ); ・VB.NET側宣言 Public Declare Function DBFGetFieldInfo Lib ”shapelib.dll” (ByVal hDBF As IntPtr, _ ’inハンドル ByVal iField As Integer, _ ’in数値 ByVal pszFieldName As StringBuilder, _ ’out文字列 ByRef pnWidth As Integer, ByRef pnDecimals As Integer) _ ’out数値シングルポインタ As Integer ・コード Dim stbFieldName As New StringBuilder(12) Dim iWidth As Integer,iDecimals As Integer,stName As String iDataType = DBFGetFieldInfo(hDBF, i, stbFieldName, iWidth, iDecimals) stName = stbFieldName.ToString 構造体やポインタ、配列の場合:(値のシングルポインタ除く) 型はIntPtr型にする。 ①渡す(in)場合 ポインタの示すメモリはマネージコード側で確保する必要がある。 もちろん使い終わったら開放する必要も生じる。 確保はMarshal.AllocHGlobal、開放はMarshal.FreeHGlobal。 マネージメモリをアンマネージメモリにコピーするには 数値型・ポインタの場合Marshal.Copy。 文字列はMarshal.PtrToString*とMarshal.String*ToPtr。 アンマネージメモリのメモリリークに要注意。確保したら開放する。 例3(構造体・ポインタ・配列の例): ・DLL側I/F SHPObject* SHPCreateSimpleObject( int nSHPType, int nVertices, double* padfX, double* padfY, double* padfZ, ); #ここのdouble*はdouble配列のポインタ ・VB.NET側宣言 Public Declare Function SHPCreateSimpleObject Lib "shapelib.dll" (ByVal nSHPType As Integer, ByVal nVertices As Integer, _ ByVal padfX As IntPtr, ByVal padfY As IntPtr, ByVal padfZ As IntPtr) As IntPtr ・コード Dim padfX() As Double = = {139.01, 140.11111111, 138.222222} '←マネージメモリ Dim size As Integer = Marshal.SizeOf(padfX(0)) * padfX.Length Dim ptrX As IntPtr = Marshal.AllocHGlobal(size) '←アンマネージメモリ確保 Marshal.Copy(padfX, 0, ptrX, padfX.Length) '←マネージメモリをアンマネージメモリにコピー 'ptrYの処理については同様のため略 Dim SHPObj As IntPtr = SHPCreateSimpleObject(3, padfX.Length, ptrX, ptrY, 0) '←DLLコール If SHPObj = IntPtr.Zero Then Return -1 SHPDestroyObject(SHPObj) '←DLLが確保したものは基本DLLに開放させる Marshal.FreeHGlobal(ptrX) '←アンマネージメモリ確保 構造体の場合Marshal.PtrToStructureとMarshal.StructureToPtrで データをコピーするが、その際、構造体の宣言に注意。 LayoutKindで構造体内のメモリレイアウトを事前に宣言する 必要がある。 構造体はStructureでもClassでも可能だが、宣言等違いに注意。 以下例4参照。 ②受け取る(out)場合と 受け渡し両方(in/out)の場合 受け取る(out)場合も基本的には同じ。上の例のSHPObj参照。 ただしアンマネージメモリの値を取り出す場合は、逆に マネージメモリにコピーしてから利用する必要がある。 例4(構造体・ポインタ・配列の受け取り例/構造体の場合の注意点): ・VB.NET側宣言 (方法1) StructLayout(LayoutKind.Sequential) _ Public Structure SHPObject Public nSHPType As Integer Public nShapeId As Integer Public panPartStart As IntPtr End Structure (方法2 より厳密な方法 以下では使用しない) StructLayout(LayoutKind.Explicit) _ Public Class SHPObject FieldOffset(4) Public nSHPType As UInt32 FieldOffset(4) Public nShapeId As UInt32 FieldOffset(4) Public panPartStart As UInt32 End Class ・コード Public Shared Function SHPReadObject(ByVal hSHP As IntPtr, ByVal iShape As Integer, ByRef oSHP_SO As SHPSimpleObject) As Boolean Dim poSHP As IntPtr Try poSHP = Module1.SHPReadObject(hSHP, iShape) '返却値構造体ポインタがNULLなら異常終了 If IntPtr.Zero.Equals(poSHP) Then Return False '返却値構造体ポインタから、アンマネージ構造体をマネージ構造体へコピー Dim oSHP As SHPObject = Marshal.PtrToStructure(poSHP, GetType(SHPObject)) With oSHP_SO .nSHPType = oSHP.nSHPType .nShapeId = oSHP.nShapeId .nVertices = oSHP.nVertices .tZ.iLimit = .nVertices - 1 End With '返却値構造体ポインタから、ポインタ格納されているアンマネージ配列をマネージ構造体へコピー With oSHP_SO.tZ ReDim .x(.iLimit) ReDim .y(.iLimit) Marshal.Copy(oSHP.padfX, .x, 0, .iLimit + 1) Marshal.Copy(oSHP.padfY, .y, 0, .iLimit + 1) End With Catch Return False Finally '返却値構造体ポインタを開放 If IntPtr.Zero.Equals(poSHP) = False Then SHPDestroyObject(poSHP) End Try Return True End Function もどる
https://w.atwiki.jp/teste/pages/114.html
D 珈琲の人。 Dといいます。 珈琲とかブラックとか黒さんとか呼ばれたりもしてます。 部活は大した腕してないですがやる機会があればよろしくですη(´ω`η) ひデブ 無印のころはネット対戦はせず、改発売から本格的にはまってその頃は主にロビーで活動してました。 今はIRCだけで活動してます。主にトミーとか使います。 他 HNはひぐらし原作を始めてやった時に部活ソング「Digital Network」が印象に残ったのでそこから取ったもの。 最近忙しくてあまりイン出来ず、ひデブは週末プレーヤーになりつつある\(^o^)/ 珈琲大好き。中毒で何が悪い…! コントローラよく壊します。安物のパッドは一ヶ月以内に壊す→PS2コンの変換に乗り換えるがそれでも壊す\(^o^)/ 今はPS2コン4代目。orz 名前 コメント