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で質問しましょう!
似たような質問が見つかりました
- ノートパソコン .dllファイルがありませんと表示される 5 2023/04/30 03:03
- その他(プログラミング・Web制作) IT初心者です 仕事で、vb.netで作成されたdllをvbaで呼び出すプログラムを作成しろと言われ 1 2023/03/27 08:22
- その他(プログラミング・Web制作) ラズパイ上の、pythonのエラーについて 1 2023/04/12 23:27
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# C言語 3 2022/10/04 15:07
- フリーソフト cygewf-2.dllがない、と表示され、ダウンロードしたファイルが動作しない 2 2023/03/27 11:05
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分 1 2022/07/19 17:03
- その他(プログラミング・Web制作) プログラムの起動、利用について、使用期間を設定する方法 3 2023/08/06 21:03
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 malloc関数を使ってください!お願いします! 最 1 2022/07/21 09:28
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ひずみ波形の波形分析のプログラム
-
vba クリップボードクリアにつ...
-
JSPファイルで生じるエラーをど...
-
エクリプスのプログラミングに...
-
データベースのデータをTextBox...
-
FCDUtil
-
エクセルVBAがMACで動かない
-
VBAの「for i=1 to cells(…」...
-
gitでバージョン指定してダウン...
-
IISワーカープロセスが原因でCP...
-
XMLとUMLの相違点?
-
java と javax の違いは?
-
RHEL6.0上で使用可能なJDKとTomcat
-
EclipseでJavaコンパイラのバー...
-
struts2環境構築で不具合が出て...
-
JDBCのバージョンが知りたい
-
どの言語を勉強すればいいでし...
-
正規表現について質問です。 カ...
-
AndroidとJavaの違いについて
-
サーブレットで電卓をつくる
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラムの起動、利用につい...
-
「2次方程式ax2+bx+c=0の係数を...
-
ひずみ波形の波形分析のプログラム
-
高校野球シミュレーション3のよ...
-
VC++ 6.0のDLLでは、キー入力受...
-
Visual Basicで作成した物をサ...
-
eclipseを使ってHTMLのウェブサ...
-
vba クリップボードクリアにつ...
-
JSPファイルで生じるエラーをど...
-
IISワーカープロセスが原因でCP...
-
Javaでのエラーについて
-
gitでバージョン指定してダウン...
-
データベースのデータをTextBox...
-
VBAの「for i=1 to cells(…」...
-
MSFormsとは何ですか?
-
java と javax の違いは?
-
サイドワインダーのドライバ
-
エクリプスのプログラミングに...
-
Eclipseソース開発画面の行番号...
-
使用しているJUnitのバージョン...
おすすめ情報