VB内でライブラリ関数のsleep関数を使いたいのですが、どこにあるのでしょうか?"kernel32"というDLLファイルにあると聞いたのですがどうやらない模様です。どなたか知っている方いらっしゃいますでしょうか。お願いします。

A 回答 (2件)

VB6 での話ですが… kernel32 の中にありますよ。



標準モジュールの中で
  Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
と宣言すれば、使えるはずです。(今、サンプルプログラムを書いて確認しました。)
    • good
    • 1
この回答へのお礼

お返事遅れました。おっしゃる通りプログラムの間違いだったようです。

お礼日時:2002/01/30 16:24

ライブラリ関数というのは、一般にCのランタイム関数のことを示します。


求めているのは、ysk6406さまのいうとおり、APIで実現できるのですが、APIでないCのランタイム関数をVBから使うことは、VBの機能だけではできません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q「古い圧縮ファイル」の確認方法

Dドライブのディスクのクリーンアップをしたいのですが、実行できるものが、「古い圧縮ファイル」の削除しかありません。

「古い圧縮ファイル」がどのプログラムかを確認する方法を教えてください。

また、圧縮されたファイルの名前は青くなるらしいのですが、見つかりません。どうしてでしょうか
圧縮ファイルは1G弱あります。

Aベストアンサー

http://www.atmarkit.co.jp/fwin2k/win2ktips/106cleanup/106cleanup.html

初期設定では、50日以上アクセスの無かったファイルに対して、圧縮が行われます。
当然、圧縮してからでないと、ファイル名は青色にはなりませんので、ディスク・クリーンアップでの候補段階では、黒色のままです。


尚、設定によっては青色表示にならない場合も有りますけど。

http://121ware.com/qasearch/1007/app/nec.jsp?005084

Qkernel32.dllファイルがコピーできませんエラー

お世話になります。
VB6.0で作成したプロジェクトのEXEを作成し、ディストリビューションウィザードでパッケージを作成しました。
同じマシンでこのSetupを起動すると、「ファイルのコピー中にエラーが発生しました:kernel32.dll」と出てしまいます。
ウィルス検索ソフトは止めてあるし、他のソフトも起動していない状態なのですが、このエラーを抜ける方法はないでしょうか?

Aベストアンサー

OKWeb(教えて!goo)内を検索したところによるとメモリー不足が原因であることがあるようです。裏で常駐ソフトが動いていたりしませんでしょうか?他にもこのサイトにはいくつか「kernel32.dll」についての質問がされています。もしそれでも解決しなければMicrosoftのサポート技術情報を利用されることをお勧めします。

では。

参考URL:http://www.microsoft.com/japan/support/?MSCOMTB=MS_サポート

Qファイルの圧縮方法

AVIやMPGの画像ファイルを圧縮する方法を教えてください。900mb位のファイルをCD-Rに落とし込める700mbまで圧縮したいんですが。できれば、zipやlzhなどの後で解凍しなくてはいけないような圧縮方法ではなく、多少画像が荒くなってもファイルを単純に縮小させるような方法を教えていただけると有り難いのですが。。
因みに、TMPGEncを試してみたんですが、どうもうまくいかなくて。。ファイルサイズが元のファイルより逆に大きくなってしまうんです。
すいませんが、宜しくお願いします。

Aベストアンサー

画像圧縮?くす(^^
エンコはTMPGEncやaviutlでやるのがふつーです。
ええ 絶対! 
aviutl
http://ruriruri.zone.ne.jp/aviutl/

zipとかで圧縮しても意味ありません サイズ的に。

で、TMPGEncで元より大きくなるのは問題は
コーデック、画像サイズ、 音声ファイルなど
理由はいっぱいあります。対処は類似質問みて↓
http://oshiete1.goo.ne.jp/kotaeru.php3?q=625581

だから圧縮というか再エンコードが面倒なら
ファイルをテキトーな部分でカットする方向性はどお?
CD-R 2枚に保存 450 450 くらいでカット。
対処は類似質問みて↓
http://oshiete1.goo.ne.jp/kotaeru.php3?q=610331
ではでは!

追伸
カンタンにならrmファイルに変更かなあ
でも画質は落ちますよ
ネット配信 ストリーミング形式でどぞ!
RealplusG2とかRealEncoderで変換
でもaviでもないしmpegでもないですけど、どお?

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=610331

画像圧縮?くす(^^
エンコはTMPGEncやaviutlでやるのがふつーです。
ええ 絶対! 
aviutl
http://ruriruri.zone.ne.jp/aviutl/

zipとかで圧縮しても意味ありません サイズ的に。

で、TMPGEncで元より大きくなるのは問題は
コーデック、画像サイズ、 音声ファイルなど
理由はいっぱいあります。対処は類似質問みて↓
http://oshiete1.goo.ne.jp/kotaeru.php3?q=625581

だから圧縮というか再エンコードが面倒なら
ファイルをテキトーな部分でカットする方向性はどお?
CD-R 2枚に保存 450...続きを読む

Q文字列を返すVCで作成したDLL関数をVBで呼ぶと...

VC++で文字列を返すDLL関数を作成しました。

LPCSTR GetVcString(void)

これをVBでStringとして受け取り、MsgBoxで表示すると正常に取得できているようなのですが、Lenで文字数を取得すると変な値が返ってきます。

1. Dim Ret As String
2. Ret=GetVcString()
3. MsgBox(Ret) ← VCで返された文字列は正常に表示されている
4. MsgBox(Str(Len(Ret))) ← 実際の文字数とはかけ離れた数値になる

2行目と3行目の間に、
Ret=Left(Ret,InStr(Ret,vbNullChar)-1)
を噛ませれば文字数は正常な値になるのですが、このような処理をしなくても正常に文字数を取得する方法があれば教えてください。

Aベストアンサー

こんにちは。maruru01です。

関数が返す文字列が、固定長で残りの部分がvbNullCharで埋まっているので、vbNullCharの手前までを抜き出す処理を入れなければいけません。
WinAPI関数などでは、このようなことはよく見られます。
単に文字数を出したいなら、

MsgBox(InStr(Ret, vbNullChar)-1)

でいいと思いますが。
でもその後でいろいろと処理するなら、

Ret=Left(Ret,InStr(Ret,vbNullChar)-1)

を入れた方がいいと思います。
たかが1行だし。

Qファイルの圧縮方法が解りません

窓の杜やベクター等に置かれている、フリーの圧縮、解凍ソフトをダウンロードしていますが、テキストファイルや、画像ファイルの圧縮方法が解りません。何方か教えて頂けませんか?

Aベストアンサー

ソフトの開発者のサイトで質問することをお奨めします。

ソフトごとに操作方法が異なりますので、使用しているソフト名すらない状態では誰も必要とする回答を出せません。

窓の杜やベクターでは開発者のサイトへのリンクがありますから、そこからアクセスできますよ。

QGetNextWindowがDLLファイルUser32.dll内に見つかりません。

前のウィンドウのハンドルを取得したいのですが上記のタイトルにあるエラーメッセージが出ます。

VB6 XPproでやってます。

User32.dllはsystem32フォルダーの中にあるのですが。

Private Declare Function GetNextWindow Lib "user32.dll" (ByVal hWnd As Long, ByVal wCmd As Long) As Long

sub tes()
n=GetNextWindow(me.whnd,3)
end sub

Aベストアンサー

これならどうでしょうか?

Private Declare Function GetNextWindow Lib "user32" Alias "GetWindow" (ByVal hWnd As Long, ByVal wFlag As Long) As Long

Qpsdファイルの圧縮方法

psdファイルの圧縮方法を教えてください。(基本的質問で恐縮ですが)
win98です。なお、ファイルは9MB程度ですが、圧縮したものを解凍する際、鮮明度が落ちずに元通りの画像で開けますでしょうか?

Aベストアンサー

●大きなサイズのファイルを分割して送付

+Lhaca 1.20 デラックス版での分割方法
http://park8.wakwak.com/~app/Lhaca/

 1. インストールは、ダウンロードした Lhaca120.exe を実行する。
 2. デスクトップに作成された +Lhaca のショートカットに、
   対象のファイルをALTキーを押しながらドロップする。
 3. 保存場所を聞いてくるので、望みの場所を指定する。
   (圧縮形式は、相手が解凍できる形式を選ぶ。)
 4. 分割されたファイル群と結合用のバッチファイルが作成される。
   (デフォルトでは 1.2MB を上限として分割される。)
   (このサイズは +Lhaca で変更できる。)
 5. (4)のファイル全てを、容量を超えないようにメールに添付して送信
   する。
   (添付ファイル総数を本文に明記すること。)
 6. 受け取った側は、全ての添付ファイルを一箇所に集めて、バッチファ
   イルを実行する。
   (操作手順は、本文に明記すること。)
 7. 分割されたファイルが結合されるので、結合された圧縮ファイルを解
   凍する。
 8. 9MBのファイルが解凍されるので、作業する。


これでどうかな!?

※他の圧縮ソフトも分割機能が備わっていると思うが・・・

●大きなサイズのファイルを分割して送付

+Lhaca 1.20 デラックス版での分割方法
http://park8.wakwak.com/~app/Lhaca/

 1. インストールは、ダウンロードした Lhaca120.exe を実行する。
 2. デスクトップに作成された +Lhaca のショートカットに、
   対象のファイルをALTキーを押しながらドロップする。
 3. 保存場所を聞いてくるので、望みの場所を指定する。
   (圧縮形式は、相手が解凍できる形式を選ぶ。)
 4. 分割されたファイル群と結合用のバッチファイルが作成される。
   (...続きを読む

Q[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の内部エラー"の値でした.

お願いします.

現在,メーカーの計測器についているライブラリ(dll)を利用して,測定ソフトを試作しようとしています.
仕様書ではライブラリはC言語で書いてあるようですが,自分はVB.NETでソフトを作ろうと思っています.

しかし,うまく関数を使うことができず,現在停滞ています(><;
以下にソースを示しますので,どなたか問題点をご指摘いただけないでしょうか?

>>ライブラリ(仕様書)
int send_cmd( WORD CmdSize, void *CmdPacket )
//WORD:符号なし64ビット
//CmdSize:送信パケットサイズ(Byte)...続きを読む

Aベストアンサー

そのライブラリの提供元に聞くのが早いと思いますが …

多分 CmdSizeの型が ULongではなく shortでいいのだと思います

QNTFS圧縮したファイルを全部まとめて戻す方法

NTFS圧縮したファイルをプロパティからひとつひとつチェックをはずして戻すのではなく、圧縮されたファイルを全部まとめて元に戻す方法ってあるのでしょうか?

Aベストアンサー

圧縮を解除したいファイルを全て選択した状態で
→プロパティ→NTFS圧縮のチェックを外す→OK

それらのファイルがフォルダに入っているなら
フォルダのプロパティからやってもいい。
(サブフォルダにも適用するか尋ねられるからOKにする)

QVB6からVC6で作成したDLLの関数を呼び出すときに注意すること

VB6からVC6で作成したDLLの関数を呼び出すときに、型について気をつけないといけませんが、VB6でint型のものはVC6ではshortにしないといけないのでしょうか?マシンやOSや開発環境(例えばVS2005やGCC)により違ってくるのでしょうか?

VB6とVC6でやり取りする場合の型について知りたいです。

あと、ActiveXのDLLの場合は関数にアクセスするのではなく、COM(という概念がわかっていないのですが)を使うのですか?

Aベストアンサー

> VB6でint型のものはVC6ではshortにしないといけないのでしょうか
VB6のInteger型(VB6ではint型とは言いません)は「16Bit符号付整数」ですから、
VC6の該当するデータ型はshort型ですね。

ちなみに、VS2005のInteger型は「32bit符号付整数」です。
対応するVC6/VC2005のデータ型はlong又はint型ですね。

> VB6とVC6でやり取りする場合の型について知りたいです。
VB6とVC6のデータ型の対応表は、VB6のヘルプ(MSDNライブラリ)の
「C 言語の宣言の Visual Basic への変換」に書かれています。

> ActiveXのDLLの場合は関数にアクセスするのではなく、
> COM(という概念がわかっていないのですが)を使うのですか?
まあ、使いますね。
#特に「COM」と言う名前の関数とかがあるわけじゃありませんけど。

手順的には
(手順1)該当ActiveXの提供するする機能が含まれるオブジェクトを生成する。
 次のどちらかで作成する。
 ・ActiveXDLLを「参照設定」して、Newキーワードで作成
 ・参照設定しないで、CreateObject関数で作成
(手順2)オブジェクトの関数(又は、サブルーチン,プロパティ)を呼ぶ。
ですね。

> VB6でint型のものはVC6ではshortにしないといけないのでしょうか
VB6のInteger型(VB6ではint型とは言いません)は「16Bit符号付整数」ですから、
VC6の該当するデータ型はshort型ですね。

ちなみに、VS2005のInteger型は「32bit符号付整数」です。
対応するVC6/VC2005のデータ型はlong又はint型ですね。

> VB6とVC6でやり取りする場合の型について知りたいです。
VB6とVC6のデータ型の対応表は、VB6のヘルプ(MSDNライブラリ)の
「C 言語の宣言の Visual Basic への変換」に書かれています。

> ...続きを読む


人気Q&Aランキング

おすすめ情報