こんにちは。Windows98環境でのC言語の質問です。
以前質問したタイトルの事について、良い回答を頂いたのですが、うれしさのあまり、自分で実行してみる前に締切ってしまい補足の質問をすることができなくなってしまったので、すいませんがここでさせて頂きたいと思います。

以前の質問内容に関しては、そちらを見ていただきたいと思います。
その時は、leaz024さんに良回答を頂いたので、その方法を試してみました。cscanfを使うと改行が行われない為、
(略)
printf("a= ");
cscanf("%d",&a);
printf("入力終了");
(略)
があったときに画面からa= の表示が消えてしまい、入力終了だけが表示されてしまいます。また、他にも問題があったので、二つ目の方法を実行してみたいと思いました。
>scanfの前に__flush_win95_keyup_events() を呼び出すことで回避できます。
ということなので、これを記述してみたのですが、(ソフトはMicrosoft Visual C++)次のようなエラーが出てしまいました。

C:\Windows\デスクトップ\R_and_wL\program.c(36) : warning C4013: 関数 '__flush_win95_keyup_events' は定義されていません。int 型の値を返す外部関数と見なします。
リンク中...
program.obj : error LNK2001: 外部シンボル "___flush_win95_keyup_events" は未解決です
Debug/R_and_wL.exe : fatal error LNK1120: 外部参照 1 が未解決です。
link.exe の実行エラー

何かヘッダファイルをインクルードしなければならないのでしょうか?

以上なのですが、宜しくお願い致します。
また、他の解決策でも良いので宜しくお願い致します。

関連URL:http://oshiete1.goo.ne.jp/kotaeru.php3?qid=187990

このQ&Aに関連する最新のQ&A

A 回答 (1件)

leon-10さん、すみません、leaz024です。



まず、cscanf についてですが、この関数は少し癖があるんですよ。
例えば、数値入力時には、数字以外のキーが押された時点で入力が終了されてしまいます。
また、入力終了のために打った Enter で、カーソル位置を一番左に戻してしまうため、その後何かを表示すると、それまで表示していた内容の上に上書きされてしまいます。
(数字だけをたくさん入力すれば、「入力終了」が表示されても、入力した内容が残って見えるはずです。)
なので、特に getch による問題が起きないところなら、scanf を使った方が良いです。

それから、__flush_win95_keyup_events については、私の調べが足りませんでしたね、すみませんでした。
私は Borland C++ 5.5.1 for Win32 を使用しているので、VC++ はちょっと分からないんですよ^^;
ちなみに上記では、conio.h の中に __flush_win95_keyup_events が宣言されていました。

多分ドキュメントが書かれていると思うので、conio.h の中を読んでみてはどうでしょうか。
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

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

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

Qエクセルで種類を数える関数が無いのは何故?

エクセルで種類を数える関数が無いのは何故なんでしょうか?

エクセルで種類を数えるには、いくつかの関数を組み合わせるのが一般的ですよね?
直接数える関数が無いのは、訳があるんでしょうか?

Aベストアンサー

>>エクセルで種類を数える関数が無いのは何故なんでしょうか?

やっぱり、そういう関数が必要な方が全体からみたら少数派だと、エクセルの開発者たちが考えているからではないかと思います。
また、既存の関数を組み合わせたら、対処可能だから、無理して新しい関数を作る必要性もない、開発の優先順位が低いって判断もあるでしょうね。

私は、エクセルの表を作ったり、エクセルVBAでプログラムを作ったりしますけど、そういう関数が必要になったことが全くありませんし。

QLNK2019:未解決の外部シンボル と LNK1120:外部参照 1 が未解決について

長いタイトルになってしまいすみません。

私は、Visual C++.NETを使用して、C言語プログラミングをしています。あるサンプルプログラムを参考にしながら改良を図っているのですが、以下に示すプログラムを追加したところ、タイトルに示しましたエラーが表示されて困っています。


//長くなり見づらいため、問題の箇所のみ記します。
void main(int argc, char** argv){

}

void *sender(void* context){

for(i=0;i<10;i++){
print_identity()
print_identity()
}

}

for文の中に、print_identity関数を追加したところ、
エラーが発生しました。

[エラー内容]
1. sample error LNK2019: 未解決の外部シンボル _print_identity が関数 _senderで参照されました。

2. sample fatal error LNK1120: 外部参照 1 が未解決です。

関数の定義がしていないと言うことでしょうか?実際に、定義してみたりしました(定義する場所が違うのかもしれません)が、解決できませんでした。

よろしくお願いします。

長いタイトルになってしまいすみません。

私は、Visual C++.NETを使用して、C言語プログラミングをしています。あるサンプルプログラムを参考にしながら改良を図っているのですが、以下に示すプログラムを追加したところ、タイトルに示しましたエラーが表示されて困っています。


//長くなり見づらいため、問題の箇所のみ記します。
void main(int argc, char** argv){

}

void *sender(void* context){

for(i=0;i<10;i++){
print_identity()
print_identity()
}

}

...続きを読む

Aベストアンサー

>print_identity関数は、自作関数です。
であれば、
void print_identity(void){;}

void print_identity(unsigned char *clue){
/* この関数での処理 */
}
に置き換えて下さい。

Qエクセルの関数で

エクセルの関数辞典を見ていたら、CUMPRINC関数というのがありました。
しかし、エクセルの「挿入」→「関数」→関数の分類で「財務」というのを選択したのですが、一覧表に載っていません。
どこに載っているのでしょうか?
どうすればこの関数を使えますか?
ちなみにシートの上でやっても関数の反応をしませんでした。

Aベストアンサー

Yahooで検索してみると、参考URLが引っかかりました。

参考になりませんか?

参考URL:http://money-sense.net/doc/20041215_224257.php

Qerror LNK2019: 未解決の外部シンボル デバイスドライバにおいて

error LNK2019: 未解決の外部シンボル __imp__○@4 が関数 _○ で参照されました
すべてのエクスポート関数について、上記と同じエラーとなります。
「@4」等、DEFファイルに記述されたエクポート番号までは捉えているのにエラーとは何事でしょうか。

Microsoftのアンサーを見ても理解できません。

ツール:VisualStudio2010のMFC

小生の知識
DLLとリンクする場合、○.libファイルとエクスポート関数を定義する○.hファイルがあればよい。これまで、この考え方でうまくできていました。
他社のICのドライバにおいて、コンパイル・リンクで苦労したことはありません

困りました。
FTDI社のFT232HでSPI-USB変換を目論んで、多数のファイル、サンプルプロジェクトをダウンロードしました。
サンプルプロジェクトを生のまま、VisualStudio2010にかけると問題なく成功します。

ソースを切り取って、こちらのアプリ(MFCのダイアログベース)に利用します。
(このやり方で、他社のドライバでは成功しています)

結果、コンパイラは通るが、リンクで関数が存在しないとなります。
libMPSSE.dll、libMPSSE.lib、libMPSSE_spi.h :○.dll、○.lib、○.h 揃っています。
VisualStudioのツールDumpbin /exportsでlibMPSSE.dllを見ると確かにエクスポート関数が存在するのが見えます。(ただし、libファイルは不明です)

ところで○.hを見ると
#ifdef FTCSPI_EXPORTS
#define FTCSPI_API __declspec(dllexport)
#else
#define FTCSPI_API __declspec(dllimport)
#endif
はなんでしょうか。初めて見るものです。関係しているでしょうか。

#ifdef __cplusplus
extern "C" {
#endif
、、、、、、、
#ifdef __cplusplus
}
#endif
はなんとなくわかります。また他に他社のドライバと目立った違いはないようです。

error LNK2019: 未解決の外部シンボル __imp__○@4 が関数 _○ で参照されました
すべてのエクスポート関数について、上記と同じエラーとなります。
「@4」等、DEFファイルに記述されたエクポート番号までは捉えているのにエラーとは何事でしょうか。

Microsoftのアンサーを見ても理解できません。

ツール:VisualStudio2010のMFC

小生の知識
DLLとリンクする場合、○.libファイルとエクスポート関数を定義する○.hファイルがあればよい。これまで、この考え方でうまくできていました。
他社のICのドライ...続きを読む

Aベストアンサー

VisualStudio2010 は使用した事ありませんが、
どこかリンカの設定に詳細メッセージを吐く項目が有るはずなので、そこを活かしてみると、閲覧者にも状況が判ると思います。

一応、私が見て前提にしている事は、
・アプリ(MFCのダイアログベース)では libMPSSE_spi.h をインクルードしている。
・また、libMPSSE.lib はアプリから参照出来る位置に配置・定義されている。
です。

なお、○.dll、○.lib、○.h はおそらく雛形ですからプロジェクトから外した方が良くないですか? 回答側から見て混乱するだけなので…

Qエクセルの関数 ネスト

エクセルの関数 ネスト

エクセルの関数で、ネストさせるときがあるとおもうのですが、

関数を内側に書いたらよいのか外側に書いたらよいのか分からなくなる時があります。

エクセルの関数に関してわかりやすく書いてあるページなどありますか。

Aベストアンサー

こんばんは

Excel2003までは、ネストが7まで、2007では64までが可能です。
http://www.google.co.jp/search?hl=ja&source=hp&q=excel+%E3%83%8D%E3%82%B9%E3%83%88%E3%80%802003%E3%80%802007&aq=f&aqi=&aql=&oq=&gs_rfai=

「仕様上は可能」でも、複雑なネストは間違いが生じやすいですし、変更もしにくくなります。「出来るだけネストはしない」「適宜、中間結果をセルに出力する」という方法を採った方が、間違いが少なく、柔軟性のあるシステムになると思います。

>エクセルの関数に関してわかりやすく書いてあるページなどありますか。
関数の個別の機能ならば、Webサイトも書籍も多数あるのですが、「組み合わせて使う」というのはその場その場での発想になってしまうと思います。

Qc:\Winodows\Sendotoとc:\Windows\デスクトップについて

設定によってはシステムをc:\Winodowsからc:\winにできるから
c:\Winodows\Sendotoとc:\Windows\デスクトップを
c:\win\Sendotoとc:\win\デスクトップにできます

同じように"Sendoto"と"デスクトップ"を例えば"Send"と"desktop"のように他の名前にできるのでしょうか?
できたとするとどのように命名されているかはどこを見れば良いのでしょうか?

Sendotoのファイル等はデスクトップ上の右クリックメニューの送るに表示され
デスクトップのファイル等は起動後に真っ先に現れる画面に表示されますね

よろしくお願いします

Aベストアンサー

SHGetSpecialFolderLocationを使ってください。

参考URL:http://www.okweb.ne.jp/kotaeru.php3?q=235894

Qエクセル関数の解読サイトなんてありますか?

エクセル関数の解読サイトなんてありますか?

いつもお世話になっております<(_ _)>

エクセルファイルに関数の入った数式が入力されています。
セルごとに複数の関数が入っていますが、私にはちっともわかりません。

そこで質問です。
こんなとき「エクセル関数を解読」してくれるようなサイトってありませんか?

たとえば検索窓があってそこに「=SUM(S1:S13)」わからなくて困っている関数式を入力。
すると答えの別ボックスに「S1~S13までの数値の合計」と出てくるようなサイト。

それに近いサイトでも良いので知っている方がいらっしゃればぜひ、教えてください<(_ _)>

Aベストアンサー

もし、

=IF(E14="","",IF(O14="",(IF(E14>"18:00"*1,"18:00",E14)-IF(C14<="8:00"*1,"8:00",C14))*24*1300,(IF(E14>"18:00"*1,"18:00",E14)-IF(C14<="8:00"*1,"8:00",C14))*24*1625))

だったら、どういう文章が出て欲しいのでしょうか?

もしE14が空白だったら、
 空白、
そうじゃなかったから、
 もしO14が空白だったら、
  (もしE14が18:00より大きかったら18:00、そうじゃなかったらE14)-(もしC14が8:00以下だったら8:00、そうじゃなかったらC14)×24×1300
 そうじゃなかったら、
  (もしE14が18:00より大きかったら18:00、そうじゃなかったらE14)-(もしC14が8:00以下だったら8:00、そうじゃなかったらC14)×24×1625

って感じですか?
数式をそのまま読解したほうが解りやすくないですか?

QLNK2019: 未解決の外部シンボルのエラーが出る KinectV2センサー

うまく直すことができませんでした。助言をお願いいたします。

Microsoft Visual Studio Professional 2013
Vewsion 12.0.30501.00 Update 2
(C) 2013 Microsoft Corporation.
All rights reserved.
ーーーーーーーー
・Kinect for Windows SDK v2をインストール
新しいプロジェクト→Win32 コンソールアプリケーション→コンソールアプリケーション(空のプロジェクト チェック入れる)
プロジェクトを右クリック→追加→新しい項目→C++ファイル
プロジェクトを右クリック→プロパティ→「構成」を「すべての構成」に変更→「構成プロパティ|C/C++|追加のインクルードファイル」に「$(KINECTSDK20_DIR)\inc」を追加
「構成プロパティ|リンカー|追加のライブラリディレクトリ」に「$(KINECTSDK20_DIR)\lib\x86」を追加
「構成プロパティ|リンカー|追加の依存ファイル」に「Kinect20.lib」
プロジェクトを右クリック→NuGetパッケージの管理…→opencv(Itseez)を追加
ーーーーーーーーー
プログラム
#include <iostream>
#include <sstream>

#include <Kinect.h>

#include <opencv2\opencv.hpp>

#include <atlbase.h>

#define ERROR_CHECK(ret) \
if ((ret) != S_OK) { \
std::stringstream ss; \
ss << "failed " #ret" " << std::hex << ret << std::endl; \
throw std::runtime_error(ss.str().c_str()); \
}

class KinectApp //クラス宣言
{
public:
//以下関数
void initialize()
{
//Kinect SDK//下10行分追加
CComPtr<IKinectSensor>kinect = nullptr;
CComPtr<IColorFrameReader>colorFrameReader = nullptr;

int colorWidth;
int colorHeight;
unsigned int colorBytesPerPixel;

ColorImageFormat colorFormat = ColorImageFormat::ColorImageFormat_Bgra;
//表示部分
std::vector<BYTE>colorBuffer;//上10行分追加

//デフォルトのKinectを取得する
IKinectSensor* Kinect = nullptr;
ERROR_CHECK(::GetDefaultKinectSensor(&Kinect));
ERROR_CHECK(Kinect->Open());
BOOLEAN isOpen = false;
ERROR_CHECK(Kinect->get_IsOpen(&isOpen));
if (!isOpen){
throw std::runtime_error("Kinectが開けません");


//カラーリーダーを取得する
CComPtr<IColorFrameSource>colorFrameSource;
ERROR_CHECK(Kinect->get_ColorFrameSource(&colorFrameSource));
ERROR_CHECK(colorFrameSource->OpenReader(&colorFrameReader));

//カラー画像のサイズを取得する
CComPtr<IFrameDescription>colorFrameDescription;
ERROR_CHECK(colorFrameSource->CreateFrameDescription(ColorImageFormat::ColorImageFormat_Bgra, &colorFrameDescription));
ERROR_CHECK(colorFrameDescription->get_Width(&colorWidth));
ERROR_CHECK(colorFrameDescription->get_Height(&colorHeight));
ERROR_CHECK(colorFrameDescription->get_BytesPerPixel(&colorBytesPerPixel));
std::cout << "create : " << colorWidth << "," << colorHeight << "," << colorBytesPerPixel << std::endl;

//バッファーの作成
colorBuffer.resize(colorWidth*colorHeight*colorBytesPerPixel);
}
}


void run()
{
while (1){
//update();
//draw();

auto key = cv::waitKey(10);
if (key == 'q'){
break;
}
}
}

//データの更新処理
void update()
{
updateColorFrame();
}
//カラーフレームの更新
void updateColorFrame()
{
//フレームを取得する
CComPtr<IColorFrame>colorFrame;
CComPtr<IColorFrameReader>colorFrameReader = nullptr;//追加
auto ret = colorFrameReader->AcquireLatestFrame(&colorFrame);
if (FAILED(ret)){
return;
}

//BGRAの形式でデータを取得する
std::vector<BYTE>colorBuffer;//追加
ERROR_CHECK(colorFrame->CopyConvertedFrameDataToArray(colorBuffer.size(), &colorBuffer[0], ColorImageFormat_Bgra));
}

void draw()
{
drawColorFrame();
}
//データの表示処理
void drawColorFrame()
{
//カラーデータを表示する
int colorWidth;
int colorHeight;

ColorImageFormat colorFormat = ColorImageFormat::ColorImageFormat_Bgra;
//表示部分
std::vector<BYTE>colorBuffer;//上10行分追加
cv::Mat colorImage(colorHeight, colorWidth, CV_8UC4, &colorBuffer[0]);
cv::imshow("Color Image", colorImage);
}
};



void main()
{
try {
KinectApp app;
app.initialize();
app.run();
}
catch (std::exception& ex) {
std::cout << ex.what() << std::endl;
}
}

ーーーーーーーー
エラー内容
エラー 2 error LNK1120: 1 件の未解決の外部参照 C:\Users\tsuruno\Documents\Visual Studio 2013\Projects\Kinectv2ver2\Debug\Kinectv2ver2.exe 1 1 Kinectv2ver2
エラー 1 error LNK2019: 未解決の外部シンボル _wWinMain@16 が関数 ___tmainCRTStartup で参照されました。 C:\Users\tsuruno\Documents\Visual Studio 2013\Projects\Kinectv2ver2\Kinectv2ver2\MSVCRTD.lib(wcrtexew.obj) Kinectv2ver2
ーーーーーーーー
参考文献は、
主:Kinect for Windows SDK プログラミング v2センサー対応版(中村薫 他 著)
及び
http://www.buildinsider.net/small/kinectv2cpp
です。色々エラーを起こしては直していたのですが、私では解決しきれない問題にぶつかってしまいました。どうにか直せないでしょうか?よろしくお願いします。

うまく直すことができませんでした。助言をお願いいたします。

Microsoft Visual Studio Professional 2013
Vewsion 12.0.30501.00 Update 2
(C) 2013 Microsoft Corporation.
All rights reserved.
ーーーーーーーー
・Kinect for Windows SDK v2をインストール
新しいプロジェクト→Win32 コンソールアプリケーション→コンソールアプリケーション(空のプロジェクト チェック入れる)
プロジェクトを右クリック→追加→新しい項目→C++ファイル
プロジェクトを右クリック→プロパティ→「構成」を「すべての...続きを読む

Aベストアンサー

コード上にあるのは
>void main()
なのですから、リンカーがWinMainを要求している時点でなにか間違っています。
# たぶん/SUBSYSTEM:CONSOLEでないとダメかと。

で、文字コードセットの影響もあるかと思われますので、「マルチバイト文字セットを使用する」にした方がいいかと。
「unicode文字セットを使用する」の場合はwmain()ですかね。
https://msdn.microsoft.com/ja-jp/library/6wd819wh(v=vs.120).aspx
あとは…void main()ではなく上記のURLの通りint main()にする…とか。
# まぁ、現状のWinMain()要求ではダメなんですけど。

Qエクセル関数を、書き写して分析できるツールはある?

タイトルの件、質問します。

エクセルの関数を分析する際に、エクセルの数式バーや、セルに入っている関数を
F2を教えて見るのでは、見にくい場合があります。

現在は、私は、メモ帳に関数をコピーして、分析したり、修正したりしています。
エクセルの機能or他ソフトで、関数を分析できるツールはあるのでしょうか??

【エクセルバージョン】
2003、2007

Aベストアンサー

難解な数式を理解したいとき,最も便利に利用できるのは,2003ではツールメニューのワークシート分析にある「数式の検証」です。
2007では数式タブにあります。

メンドクサイ数式のセルで数式の検証を使い,どの関数やどのカッコから計算が進んでいくのかを1ステップずつトレースして理解します。また意図しない結果がどの段階で発生しているのか追跡します。

このやり方は勿論間違った数式(意図しない結果が出てきた場合)を追跡するのにも使いますが,むしろ誰かに教わった「正しい数式」を理解する時に便利な方法です。
そもそも計算が通っていない(たとえばカッコの対応が間違えていて,Enterしても受け付けてくれないようなミスをしている場合)には使えません。



また,数式バーの中で数式の「中」にカーソルを入れて左右の矢印キーでカーソルを動かしていったときに,「(」や「)」をまたいだ瞬間に,対応する「閉じカッコ」「始まりのカッコ」が色つきで強調表示されるのを確認しながら,カッコの対応がまちがえてないかなどを調べるのも簡易な良い方法です。


あまり使わない方法ですが,数式の中で適宜ALT+Enterを打って「セル内改行」してしまい,数式を縦に分解して書いてみるのも整理しやすい方法のひとつです。

難解な数式を理解したいとき,最も便利に利用できるのは,2003ではツールメニューのワークシート分析にある「数式の検証」です。
2007では数式タブにあります。

メンドクサイ数式のセルで数式の検証を使い,どの関数やどのカッコから計算が進んでいくのかを1ステップずつトレースして理解します。また意図しない結果がどの段階で発生しているのか追跡します。

このやり方は勿論間違った数式(意図しない結果が出てきた場合)を追跡するのにも使いますが,むしろ誰かに教わった「正しい数式」を理解する時に便利...続きを読む

Qerror LNK2001: 外部シンボル "_main" は未解決です

VisualC++6.0で、新規作成→win32 Dinamic-Link Libraryでプロジェクト
を作成し、dllファイルを作っています。
今までは、上手くコンパイル出来て、dllを作れていました。
友人の作ったライブラリにリンクして、ソースファイルで
そのライブラリの関数を使って、コンパイルすると、

LIBC.lib(crt0.obj) : error LNK2001: 外部シンボル "_main" は未解決です。

というエラーが出て困っています。
今、プロジェクトの設定→リンク→アウトプットの
エントリポイントシンボルはDllEntryPoint@12となっています。
どうしたら良いでしょうか?
どなたかご教授くださると助かります。

ちなみに、ライブラリの関数をコメントにすると、コンパイル出来ます。

Aベストアンサー

もう一つ、書くの忘れてました。

exeを作るプロジェクトにした時、main()関数が無くて
>LIBC.lib(crt0.obj) : error LNK2001: 外部シンボル "_main" は未解決です。
が出てるんなら、main()を書かないと駄目ですよ。


人気Q&Aランキング

おすすめ情報