
VC++ 6.0のDLLでは、キー入力受け付けないのでしょうか。
購入したオシロスコープ装置に、開発者向けサンプルプログラムが付いてました。
その中に、VC++ 6.0 のコンソール版(コマンドプロンプトで実行する)プログラムも入ってました。
このプログラムは、トリガー入力(信号が入力されたら測定開始するモード)時に、入力信号がないまま動作を中断するとき、PCのキーボードの何かのキーを押すことになってます。
このプログラムを愛用の開発ソフト(ARAGOW)で制御したくて、ソースを書き換えDLLを作りました。
ちゃんと動作し測定できましたが、キー入力を受け付けないので、正規の方法で中断できません。
DLLでは、キー入力を受け付けないのでしょうか。
ほかの手段でも、中断する方法ないでしょうか。
なお、ARAGOWでは、VC++ 6.0などネイティプ(というのかどうかよく知りませんが)なDLLしか利用できません。
それから当方、C言語関係ほとんど初心者です。すみません。
上記サンプルプログラム(ps2000con.c) の処理中断部分です。
--------------------------------------------------------------------------
int collect_block_triggered (void)
{
int i;
・
・
・
if (kbhit ())
{
getch ();
printf ( "data collection aborted\n" );
return 1; // 中止
}
else
{
// ここから信号読み取り開始らしい //
・
・
・
~以下省略~
上記プログラムを書き換えて、
VC++ 6.0 のWin32 Dynamic Link Library で、PS2105AD.dllを作成しました。
コマンドラインで、
DUMPBIN /EXPORTS PS2105AD.DLL
を実行すると、次のように表示されます。
----------------------------------------------------------------------------
Microsoft (R) COFF Binary File Dumper Version 6.00.8447
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
Dump of file PS2105AD.DLL
File Type: DLL
Section contains the following exports for PS2105AD.dll
0 characteristics
554946BB time date stamp Wed May 06 07:39:55 2015
0.00 version
1 ordinal base
1 number of functions
1 number of names
ordinal hint RVA name
1 0 00001028 PsOpen
Summary
9000 .data
1000 .idata
3000 .rdata
2000 .reloc
34000 .text
----------------------------------------------------------------------------------
私が日常使っているマイナーな開発ソフト(aragow)で、 PS2105AD.dllを起動すると、ちゃんと動作しました。
ご回答戴いても、当方理解できないかもしれませんが、よろしくお願いします。
No.1ベストアンサー
- 回答日時:
検索して見つかるps2000con.cはVC++6.0用ってワケではなさそうですが。
ファイルの先頭あたりにあるコメントでは2006年に最初のモノが作られたっぽいですけど。
# あと、VC++6.0はとっくにサポート切れです。
>コマンドラインで、
>DUMPBIN /EXPORTS PS2105AD.DLL
>を実行すると、次のように表示されます。
>1 0 00001028 PsOpen
そのDLLで外部から利用できるのはPsOpenという名前の関数になると思いますが
そのあたりは間違いありませんか?
>if (kbhit ())
そのDLLがリンクされるアプリケーションに標準入出力が割り当てられていないと、たぶん動作しませんがそのあたりはちゃんとされていますか?
# Win32コンソールアプリケーションとかですね。まぁ起動した後で再割り当てするというのもありかもしれませんけど。
>購入したオシロスコープ装置に、開発者向けサンプルプログラムが付いてました。
Picoscope2204Aか、その系統…でしょうかね?
PS2105ADって名前つけているところからPicoScope2105?
# http://akizukidenshi.com/catalog/g/gM-01621/
私自身はソフト屋さんなので、電気の方のオシロスコープ使うことはないのですが……。
https://www.picotech.com/downloads
の「PS2000 Software Development Kit 10.5.2」ですかね。
「C gui」ディレクトリの下にVisual C++ Express 2010向けに作成されたサンプルが、
「Wrapper」ディレクトリの下にVisual Studio Express 2012 for Windows Desktop向けに作成されたサンプルがあるようです。
サンプルコードからDLLに用意されているAPIのコール順などを調べ、自前で必要な処理を組み込んでいく…ということになると思いますが。
# 現物ありませんしこれ以上は不明…ですかね。
# 英語が大丈夫でしたらメーカーのフォーラム利用された方がいいかもしれません。
# https://www.picotech.com/support/
面倒な質問にお答えくださりありがとうございます。
やはり当方の基本知識不足のようで、自分で処置するのは困難そうです。
>そのDLLがリンクされるアプリケーションに標準入出力が割り当てられていないと、たぶん動作しませんがそのあたりはちゃんとされていますか?
してません。
それが理由らしいですね。
VC++のアプリケーションならOKなんでしょうね。
アプリケーションは、aragowという誰も知らないような開発ソフトなので、説明の仕方が分かりません。
>ファイルの先頭あたりにあるコメントでは2006年に最初のモノが作られたっぽいですけど。
私が書き換えています。
win32 console applicationとしては、正常動作しています。
># あと、VC++6.0はとっくにサポート切れです。
承知しています。
visual studio 2005と2010も使用できる状態にはあります。
>PS2105ADって名前つけているところからPicoScope2105?
PicoScope2105です。
当方本件趣味とはいえ、装置製作を急いでいるので、SOHOの技術者にでも有料相談します。
ほかにも質問があるし・・・。
そんな相談できるところご存じでしたら、ご紹介ください。
でも、DLLの改造プログラムも、基本的に動作するので、申し少し試行錯誤してみます。
ありりがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
隣の枝がはみ出してきたら切ってもいい?最もやってはいけないことは?
「隣の木が越境してきて困るが、勝手に切ってはいけないと聞くし…」そう思っている方も多いだろう。実は、2023年4月1日に民法が改正され、この「越境枝」のルールが大きく変わった。 教えて!gooでも「境界から出て...
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Vba Replace関数について教えて...
-
CSSが全く分かりません、お助け...
-
プログラミング 素数か素数では...
-
c言語の問題の説明、各所ごとに
-
DLLファイルの逆コンパイラにつ...
-
逆コンパイルと逆アセンブルの...
-
C言語について。
-
C#でログファイルにファイルパ...
-
終端記号、非終端記号とは
-
VisualStudioでC++クラスを追加...
-
int16_t の _t は何?
-
Cのオブジェクトファイルの逆ア...
-
C言語の関数のextern宣言
-
DNCL(共テ用プログラミング言語...
-
C#でTreeViewのCheckBoxのサイ...
-
CPUが16bitでも32bitOSでコンパ...
-
C言語 列挙型(enum型)変数について
-
コマンドプロンプトについて。
-
visual studioでフォームデザイ...
-
Windows Formアプリからコンソ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラムの起動、利用につい...
-
2^xを表示するプログラミング
-
VC++ 6.0のDLLでは、キー入力受...
-
高校野球シミュレーション3のよ...
-
vba クリップボードクリアにつ...
-
JSPファイルで生じるエラーをど...
-
IISワーカープロセスが原因でCP...
-
MSCOMCTL.OCXのアップデートの方法
-
MSFormsとは何ですか?
-
CrystalReportsのバージョン確...
-
使用しているJUnitのバージョン...
-
Javaでのエラーについて
-
Eclipseソース開発画面の行番号...
-
【javaコンパイル時のエラーに...
-
gitでバージョン指定してダウン...
-
オブジェクト指向について
-
VBAの「for i=1 to cells(…」...
-
エクリプスのプログラミングに...
-
データベースのデータをTextBox...
-
EclipseでJavaコンパイラのバー...
おすすめ情報