|
同じ日に2度書くと言うことは訂正があるからです。
結論から申しますと普通ユーザーにし優先順位を上から2番目の
HIGH_PRIORITY_CLASS にしてもデータの取り零しは発生しません
でした。取り零しの原因は受信処理ループにある下の三行でした。
printf は結構なリソース食いで速度の足を引っ張ります。
for (i = 0; i < (int)dwRead; i++)
printf("%02X", buf[i]);
printf("\n");
デバッグ用のコードでバグを発生させてるとはトンマで、すみません。
HIGH_PRIORITY_CLASS の設定は下を参考に適切な位置に入れて下さい。
なお製作29のコードでも動きましたけど以前のコードも動きました。
危うくコードを複雑して失敗する寸前でした。確かにwindowsとLinux用
ではドライバで大きな違いはなく(多少はLinuxが使い易いですけど)
実行してるパソコンの速度(性能)が大きく影響してました。
if (COMPORT == -1){
printf("no com port installed \n");
}
else{
printf("com port number is %d\n", COMPORT);
}
HANDLE hProcess;
hProcess = GetCurrentProcess();
if (SetPriorityClass(hProcess, HIGH_PRIORITY_CLASS))
printf("SetPriorityClass: Success\n");
else
printf("SetPriorityClass: Error\n");
|

>
- コンピュータとインターネット
>
- コンピュータ
>
- ソフトウェア




