ベストアンサー VB2005でライブラリを作成していますが、DoEvents()が呼出 2010/04/20 08:46 VB2005でライブラリを作成していますが、DoEvents()が呼出しできません。この代わりになる命令は何があるのでしょうか?宜しくお願い致します。 みんなの回答 (2) 専門家の回答 質問者が選んだベストアンサー ベストアンサー Hardking ベストアンサー率45% (73/160) 2010/04/20 13:18 回答No.2 すいません。 Application.DoEvents()でした。 質問者 お礼 2010/04/20 13:42 ビルドでき、動作もOKでした。ありがとうございました。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 その他の回答 (1) Hardking ベストアンサー率45% (73/160) 2010/04/20 10:04 回答No.1 My.Application.DoEvents() です。 質問者 補足 2010/04/20 10:25 早速のご回答感謝申し上げます。 ご回答の記述もしてみたのですが、ビルドエラーとなります。 「'DoEvents'は'c_TxFist.My.MyApplication'のメンバではありません」というエラーです。 何故か分かりましたら教えてください。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピューター業務ソフトウェアその他(業務ソフトウェア) 関連するQ&A VB.NET版のDoEvents()を探しています こんにちわ。yukimura1024です。 VB.NET版のDoEvents()を探しています。 VB6のDoEvents()と同様のものは System.Windows.Forms.Application.DoEvents()です。 と書かれたHPをいくつかみつけたのですが、 実際VB.NETでコードを書き込むと、 「'Windows' は 'System' のメンバではありません。」 と、怒られてしまいます。 これはなぜでしょうか? コンソールアプリなんですがそれだとダメなんでしょうか。 よろしくお願いいたします。 DoEventsについて VB6で使っていたDoEvents(ステートメント)は、VB2008ではどう変えれば良いのでしょうか。お願いします。 JavaでVBのDOEVENTSと同様の処理とは for(;;){ . . . }としているのですが、キーイベントによりfor文を 抜けるにはどうしたらよいのでしょうか? vbですとdoeventsでいいのですが、Javaで同様の処理をさせるにはどうしたら良いのでしょうか? どなたか教えてください。 ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム VB2008でクラスライブラリー(DLL)を作成中なのですが、旨く出来 VB2008でクラスライブラリー(DLL)を作成中なのですが、旨く出来ません。 それは、マウスでクリックした座標(X,Y)を取得したいのです。 ご存じの方がいらっしゃいましたらご教授下さいませ。 サンプルリストを書いて戴けると非常に嬉しいです。 以上 宜しくお願い致します。 VB.NETでクラスライブラリプロジェクトがでてこない VB.NETスタンダードですが、DLLを作りたいのですが、新しいプロジェクトで「クラスライブラリプロジェクト」がでてきません。どうしてでしょうか? また、VB.NETで普通にDLLを作成するには、やはり「クラスライブラリプロジェクト」を開くしかないのでしょうか? VB 2008 DLL作成の方法 当方Visual Studio 2008のVB、C++で開発をしています。 VS2008のVBでクラスライブラリとして作成し、ビルドをしてDLLを作成したのですが、 対となるLIBファイルがどこにも見当たりませんでした。 VS6.0のVBではLIBファイルも作成されました。 VS2008のVBでLIBファイルを作成する方法をご存知の方いらっしゃいましたら教えてください。 LIBファイルを使用する理由は、VBで作成したDLLをC++に組み込むときにリンクさせる為です。 ※今回はLoadLibrary関数を使わず、LIBファイルを使おうと考えています 以上、宜しくお願い致します。 VC6.0で作ったライブラリをVBで呼び出したい Vc++6.0で作ったライブラリをVBで呼び出そうとしています。 void*型の引数を呼び込みたいのですが、宣言部でどのように書けばよいのでしょうか? 呼び出し時引数をどのような形で渡せば良いのでしょうか? また返り値をPVOID型とするとどのように宣言部で書いて、呼び出したらよいのでしょうか? 例 void DeleteDllClass( PVOID oBj );という関数を VBから呼び出すと? PVOID CreateDllClass();をVBから呼び出すと? 調べてみましたがイマイチ分からなくて・・・・ VB2008でのDLL作成方法について はじめまして、はじめて投稿します。 初心者なので変な質問をしていたらすいません。VB2008を使用しています。 VBで作成したDLLファイルをLabviewで使用したいと思っています。 ただVB6.0でActiveX DLLを作成する方法はわかるのですが、VB2008で作成する方法がわかりません。 クラスライブラリでプログラムを作成し、DLLにすることはできるのです・ しかしレジストリに登録しようと思い「regsvr32 ファイルのパス**.dll」と入力したところ「**.dllは読み込まれましたが、DllRegisterServerエントリポイントが見つかりませんでした」と出ます。 調べてもVB2008でのActiveX DLL作成方法が見つからなくて困っています!!! わかるかた、よろしくお願いいたします。 Doevents をご教授ください。 VBでシリアルプリンタを制御するアプリケーションを開発しています。 プリンタに状態(ヘッドが開いているとかリボンがないとか)を問い合わせる関数をTimer1_Timer()で呼び出しています。 その関数内、プリンタに問い合わせてからの応答待ちにDo~Loopを使っています。 そのループ内にDoeventsがあります。 プリンタとPCを繋げていると起こらないのですが、繋げてないと、 (1)アプリケーションを終了してもタスクマネージャを覗くとプロセスが残っている (2)デバグしてみるとform.unload()時にTimer1.enabled=falseにしているのにform.unload()が終わるとTimer1.enabled=trueになってしまう (3)(2)の後、Timer1_Timer()に記述したプリンタの状態チェックする関数内のDoeventsに移動して無限ループになってしまう というような現象が起こります。 多分Doeventsの使い方が悪いと思われます。 これを回避する方法を教えてください。 vb2008でのクラスライブラリ実行に関して vb2008でのクラスライブラリ実行に関しての質問なのですが、 クラスライブラリで以下の内容のプロジェクトを作成しました。 プロジェクト名:TEST ファイル名:TEST1.vb '~プログラム内容~ Module D01001B Public Function Main(ByVal CmdArgs() As String) As Integer 'バッチの処理内容 End Function End Module このバッチをデバックしたいのですが、どうやらクラスライブラリは 単体ではデバックできないらしくどうすればできるのか困っています。 調べてみると新しいプロジェクトでWindowsフォームアプリケーション を選択し、フォームからボタンを押して実行する方法があるとの ことなのですがどのように記述したらよいかわかりません。 できればどのように記述すれば実行(呼び出し)できるのか教えていただけないでしょうか? 以上 VBでバッチ呼び出し VB2008でボタン(btn1)をクリックすると、C:\abc.batを呼び出し、batに書かれている命令を実行させたいと思っています。 ネットで探したところ、VBAでは下記のURLにあるようにすればできるっぽいのはわかりました。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1320106183 Set objShell = WScript.CreateObject("WScript.Shell") objShell.Run "D:\test02.bat" ただ、VBではどのように実行すればよいかわかりません。ご教授お願いいたします。 VB6でのファイル作成方法 VB6.0でファイルを作成するにはOPEN命令を使用しますが、その時ファイル最後尾にEOFコードが入ってしまいます。このEOFコードが入らない様にするにはどうしたら良いか?試行錯誤していますが、どうにもうまくいきません。 どなたか分かる人がいたら教えて欲しいのですが・・・。 AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム Cで作成したDLLをVBで呼出 Cで作成したDLLの関数をVB6.0から呼び出す事ができず、悩んでおります。 ご教授お願いします。 どの様な関数を呼び出そうとしているのかというと、以下の通りです。 <DLL Cで作成(コンパイラVC6)> void WINAPI hoge(BSTR pgname,BSTR fmt,...){ ~処理~ } /* 宣言では頭にDLLExport*/ <呼出側 VB6.0で作成> '宣言 Public Declare Function hoge Lib "hoge" _ (ByRef pgname as String , _ ByRef fmt as String , _ ParamArray args()) '呼出 call hoge("foo","baa","array1",2) この様なコードを書いております。 C側、VB側ともに固定数の引数にしてみたところ、 通ったので「ParamArray args()」の定義が違うのではないか・・・?と思っているのですが、 どの様に宣言したらよい物なのでしょうか? もしくは、そもそも全然違う箇所を間違っているのでしょうか? 宜しくお願いします。 ※ 説明の足りない箇所があれば、仰ってください。 VBアプリケーションからのVCモジュールの呼び出し VBでアプリケーションを作成しようと考えているのですが、一部VBでは実現できない機能があります。その部分はVCでは実現できるようです。 そこで、VCで作成した機能をVBのアプリケーションから呼び出して使用したいと考えています。 このように、VCで作成したモジュールをVBで呼び出して使用するということは、可能なのでしょうか。 よろしくお願いします。 VB6からVB2005 VB6で作成されたアプリケーションプログラムをVB2005へコンバージョンしたいのですがアドバイスお願い致します。 windows7でライブラリーの作成が出来ません 最近気が付いたのですがwindows7でライブラリの新規作成が出来なくなっていました。 ツールバーの「新しいライブラリ」ボタンをしてもなにも出てきませんし 右クリック→新規作成→なし となってしまいます。 別件でレジストリを変更しているうちに無くなってしまったと思います。 元には戻らないでしょうか? 共有ライブラリの作成について 呼び出した関数名の名前を表示させる、 テスト用共有ライブラリ「testLib.so」を作成しようと思っています。 そしてそのライブラリを他のプログラムから呼び出すというものです。 以下、内容。 int test1(void){ printf("test1 program."); } int test2(void){ printf("test2 program."); } int test3(void){ printf("test3 program."); } 【パターン1】 上記関数毎でファイル分けし、 test1.c、test2.c、test3.c と言うファイルを作成。 これらの各オブジェクトを取り込んで共有ライブラリを作成するパターン。 【パターン2】 全ての関数を「testDisp.c」と言うファイルに記述し、 このオブジェクトファイルで共有ライブラリを作成するパターン。 上記パターン1と2では用途によって使い分け方法があると言う話を先日聞いたのですが、どの様な場合に1、どの様な場合に2のパターンを使用するのでしょうか。 宜しくお願い致します。 [VB]ライブラリの関数が使えません お願いします. 現在,メーカーの計測器についているライブラリ(dll)を利用して,測定ソフトを試作しようとしています. 仕様書ではライブラリはC言語で書いてあるようですが,自分はVB.NETでソフトを作ろうと思っています. しかし,うまく関数を使うことができず,現在停滞ています(><; 以下にソースを示しますので,どなたか問題点をご指摘いただけないでしょうか? >>ライブラリ(仕様書) int send_cmd( WORD CmdSize, void *CmdPacket ) //WORD:符号なし64ビット //CmdSize:送信パケットサイズ(Byte) //CmdPacket:送信パケット >>VB.NET(自作) Public Declare Function send_cmd lib "test.dll" (ByVal CmdSize as ULong, ByRef CmdPacket as Byte() ) as integer Dim Test_Packet(a) as Byte res = send_cmd(Test_Packet.length, Test_packet) //Test_Packet : 送信用パケットのダンプ ***結果 res の値が仕様書の"dllの内部エラー"の値でした. LinuxでDoEvents()同等機能 Linux初心者です。 2.6-18-at9 Debianで及ばずながらマルチスレッドのプログラムを書いています。 VBにはOSにコントロールを戻すDoEventsという機能があります。 Windows/VC++ではこれと同等機能の関数を使っています: DWORD DoEvents(VOID) { MSG msg; while( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) ){ if ( msg.message == WM_QUIT ){ return( msg.message ); } TranslateMessage( &msg ); DispatchMessage( &msg ); } return( 0 ); } どなたかの示唆によるもので内容はよく理解していませんが、Windows下ではこれで長年つかえてきました。 Linux-gccで同等の関数は定義できるのでしょうか?。 Delphi6でVB.NETで作成のDLL呼出 VisualSutudio2005で作成され提供されているDLLをDelphi6から呼びだしたいと思っています。 提供ファイルとしてあるのは以下のものです。 ・DLLファイル本体 ・XMLファイル 直接は呼びだせない(?)と思ったので、 VB.NETでDLLを作って間に入れて、 下のように呼び出せばいいのかなと考えています。 Delphi6で作成のEXE → VB.NETで作成のDLL(COM登録?) → 対象のDLL まずはDelphi6のEXE→VB.NETのDLLの部分を作って試してみたですが Delphi6のEXEの起動時にエラーとなってしまいます。 「アプリケーションの初期化に失敗しました」 ネットなどで調べてみて作り方は下記のようにしました。 <呼ばれる側:VB.NETのDLL> 1.COMクラスを作る。 ・COM参照可能の設定にした。 (タイプライブラリが作成され、レジストリへのCOM登録は自動でされる?) 2.作成したDLLはCドライブ直下に置いた。 ※下の*****は自動作成された固定値が入っています。 また見やすくするためここでは半角空白を全角空白に変えています。 -------------------------------------------------------------------- Imports System.Windows.Forms <ComClass(Middle_Dll.ClassId, Middle_Dll.InterfaceId, Middle_Dll.EventsId)> _ Public Class Middle_Dll #Region "COM GUID" ' これらの GUID は、このクラスおよびその COM インターフェイスの COM ID を ' 指定します。この値を変更すると、 ' 既存のクライアントはクラスにアクセスできなくなります。 Public Const ClassId As String = "**************************" Public Const InterfaceId As String = "**************************" Public Const EventsId As String = "**************************" #End Region ' 作成可能な COM クラスにはパラメータなしの Public Sub New() を指定しなければ ' なりません。これを行わないと、クラスは COM レジストリに登録されず、 ' CreateObject 経由で ' 作成できません。 Public Sub New() MyBase.New() End Sub Public Sub DispMsg() Dim MsgRet As MsgBoxResult MsgRet = MessageBox.Show("VB.NET DLLより表示!", "確認メッセージ", MessageBoxButtons.YesNo, MessageBoxIcon.Information) End Sub End Class --------------------------------------------------------------------- <呼び出し側:Delphi6のEXE> 1.タイプライブラリの取り込み設定で登録したDLLを選択し、 「コンポーネントラッパーの作成」にチェックを入れてインストールを実行。 --------------------------------------------------------------------- unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,OleCtnrs,ComObj, OleServer; type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; procedure Button1Click(Sender: TObject); private { Private 宣言 } public { Public 宣言 } end; var Form1: TForm1; //---------- //静的呼出 //---------- procedure DispMsg();Stdcall; external 'c:\Middle_Dll.dll' name 'DispMsg'; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin //---------- //静的呼出 //---------- DispMsg(); end; end. ----------------------------------------------------------------- Delphi6のEXEはすでにあるものなので、 呼び出し元はDelphi6から変えられませんが、 呼び出し先はC#やC++でも構いません。 (1)Delphi6のEXE→VB.NETのDLLの呼び出しは可能でしょうか? (2)可能でしたら不具合と思われる箇所はどこでしょうか? (3)この方法より良いと思われる方法はありますでしょうか? DLLを作った事がないので見よう見まねで作っています。 気になる点やアドバイス程度でも構いませんので、 どうかよろしくお願いいたします。 == 開発環境 == WindowsXP SP3 Delphi6 Enterprise SP2 VisualSutudio2005 ProffesionalEdition 評価版 .NET Framework 1.1~3.5 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター 業務ソフトウェア CAD・DTP会計ソフトグラフィックソフトグループウェアオープンソースその他(業務ソフトウェア) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
ビルドでき、動作もOKでした。ありがとうございました。