
現在開発環境QT5.3を使用しシリアル通信のプログラムを組んでいるんですが
以下のエラーが発生し、調査を行っても不明なため質問させていただきました
OS:WindowsXP
開発環境:QT
目的:RS422通信
まずシリアル通信ポートがパソコンに標準でついていないため、インターフェースから
PCIタイプのシリアル通信ボードを購入し、取り付けました
メーカの自己診断、メーカの送受信は確認し文字の送受信を確認しました。
デバイスマネージャで確認し、"COM3"と"COM4"であることを確認しました。
そこでQTでプログラムを組んでいくとCreateFile関数でエラーが発生することを確認しました
GetLastError関数の戻り値を確認すると0を返すことを確認しました。
以下が今回記述したプログラムのソースコードとなります。
#include <windows.h>
#inlclude <stdio.h>
#include <stdlib.h>
#include <string.h>
void MainWindow::Serial_open()
{
HANDLE hPort;
SetLastError(NO_ERROR);
hPort = CreateFile((LPWSTR)"COM3",GENERIC_WRITE |
GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if(hPort==INVALID_HANDLE_VALUE)
{
DWORD dw = GetLastError(); //ここで戻り値0がくる。
}
}
以上よろしくお願いします
No.2ベストアンサー
- 回答日時:
QTの開発環境は全然知りませんが、
コード上不都合があるとすると、LPWSTR の部分と思われます。
↓この辺りをヒントにしてみてください。(同じ開発環境のCOM PORTに関するサンプルコードがあれば、それも参考になるはず)
http://www.atmarkit.co.jp/fdotnet/dotnettips/025 …
色々検索すると、開発環境は異なりますが、類似問題で解決している例が多々見つかります。
No.3
- 回答日時:
たぶん正確な文言は
「キャストしてください」
ではないと思うが....
さておき, よしんばそういうメッセージだったとしてもそれは
キャストすればプログラマの思った通りの結果が得られる
と言っているわけじゃないだろう.
つまり「キャストしてごまかすのではなく『キャストしなくてもいい』ように変更する」のが正解だと思われる.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DLLファイルの逆コンパイラにつ...
-
Windows Formアプリからコンソ...
-
プログラマー達は何故、プログ...
-
C言語のことです。写真(見にく...
-
c#のTLS1.2での通信について
-
visual studio 2022でのC#プロ...
-
C言語の関数のextern宣言
-
C言語について(初心者)
-
C# で 数式文字列処理を処理す...
-
C言語 関数、変数の宣言について
-
逆コンパイルと逆アセンブルの...
-
c言語
-
C言語について。
-
c言語でイベントフラグを使った...
-
大量のデータを読み込んで表示...
-
プログラミングc++を全く分か...
-
あってる
-
コンソールアプリを作成するの...
-
プログラム言語について c言語...
-
swift言語の最適化 swift最適化...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パナソニックが開発した冷却フ...
-
vncとultravncとrealvncの3つ...
-
飛蚊症について
-
Accessでナビゲーションウィン...
-
VBAからIPアドレスを取得...
-
ヘッダーファイルのmachine.hが...
-
ASP.NetでWebアプリ開発の経験...
-
いわゆるソシャゲは何のプログ...
-
C#で作成したDLLをExcelに内蔵...
-
見積もりが甘い
-
VisualStudioで、IF文やFor文の...
-
SNMPマネージャの開発
-
adblockとadblock plus
-
システム開発の手付金について
-
中 イキがしたいです…。
-
紀元二千七百年式典
-
VB2010 フォームのリロード
-
社内システムを開発していく言語
-
教えてください!IEのツールバー
-
C言語でWindowsの開発を行なっ...
おすすめ情報