Gate_Keeper.obj : error LNK2019: 未解決の外部シンボル "void __cdecl comopen(void)" (?comopen@@YAXXZ) が関数 _main で参照されました。
このようなエラーが出てしまいます。どのようにすればいいのか助言をお願いします。
エラーメッセージ"そのまんま"です。
関数 comopen がないのでリンクに失敗しています。
呼んでいるのにその実装を忘れてるのか、あるいはリンクすべきライブラリが足りません。
返信ありがとうございます。
cppファイルで
#include "CommSet.h"
void comopen();
void main(){
・・・
comopen();
・・・
また、ヘッダーファイル内で
void comopen(char*,char*,char*,int,int);
void comopen(char *pComport, char *pBaudRate, char *pParity, int bytesize, int stopbits){
・・・
というようにしているので実装されていると考えているのですが何か足りないでしょうか?
また、リンクすべきライブラリというのはどのようにして調べたらいいのでしょうか?
エラーメッセージをよく読みましょう。
Gate_Keeper.obj : error LNK2019: 未解決の外部シンボル "void __cdecl comopen(void)" (?comopen@@YAXXZ) が関数 _main で参照されました。
void __cdecl comopen(void)はvoid comopen()のことで、επιστημηさんの助言と合わせると、void comopen()が実装されていないということです。
もっと補足するなら
void comopen(); と
void comopen(char*,char*,char*,int,int);
はまったく別物だということだ
> リンクすべきライブラリというのはどのようにして調べたらいいのでしょうか?
マニュアル読め、ちうことになるな。
誰が作ったかわからない void comopen(); の正体を知っているのは mouse 氏のみなので
どのマニュアルを読めばよいか判断できるのも mouse 氏のみ
マルチ先
http://www.play21.jp/board/formz.cgi?action=res&resno=13241&page=&id=dixq&rln=13254
より
>void comopen();
の定義がないと思われる。
cppファイル内で
void comopen();→void comopen(char*,char*,char*,int,int);
comopen();→void comopen(char*,char*,char*,int,int);
と変更することでコンパイルを通すことができました。
助言をしてくださったみなさま、ありがとうございました。
>と変更することでコンパイルを通すことができました。
まちがっているとおもわれ。
>と変更することでコンパイルを通すことができました。
通しただけとおもわれ。
どの部分が間違っていると思われますか?
現在、実行すると
Debug Assertion Failed!
Program:...
File:fprintf.c
Line:55
Expression:(str!=NULL)
For information on how your program can cause an assertion failure,see the Visual C++ documentation on asserts.
というエラーが出てしまい、実行結果を見ることができないので、通すところまでしかできませんでした。
リンク先より。。。
/////<Gate_Keeper.cpp> 入退室システムのメイン制御(文字列の送信受信)///////
…閉じ込められないかねwww
> どの部分が間違っていると思われますか?
ソースの呈示もないのに"どの部分"と仰られましても、ねぇ。
Debug-modeで実行すればassert失敗地点までのcall-stackが追えるんじゃないすか?
> comopen();→void comopen(char*,char*,char*,int,int);
> と変更することでコンパイルを通すことができました。
これ、関数を呼び出しが関数宣言に変わってしまっています。
つまり、「comopen()を呼び出そうとしている」→「何もしない」と変化しています。
関数名から推測するに、comポートの準備ができていないためにエラーになっているのでは?