ドライバーからデータを読み取っています。ドライバーには、ドライバーに基づいてアプリケーションを開発する方法の例が付属しています。例は数年前に書かれたものです。彼らは WINAPI と C を使用します。ここで、いくつかのヘッダー ファイルを使用します。それらには、データ構造とその他のさまざまなものが定義されています。
C++ で WINAPI を作成して、それらのファイルにリンクしようとしました。しかし、ここで説明したように、最後の回答で、同じことが私のコードの問題であると強く信じています。
今、私はそこで提案されたようにすることはできません。私のプログラムは長く、ヘッダー ファイルを台無しにすることはできません。それらは複雑です。
私のオプションは、私のプロジェクトを完全に C で作成することです (うまくいくといいのですが)。
まず、ファイルの名前を .cpp t0 .c に変更しました。(私はこれら 2 つのプログラミング言語の違いさえ知りません。その違いは今のところ違いはありません。) 主な質問
APIを使用してファイルIOを使用し、以下を使用しました:
HANDLE myFile=CreateFile("filename.txt",FILE_APPEND_DATA,FILE_SHARE_WRITE,0,\
OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
int BufferNo=sprintf(body,"%.5f %[3].5f %[3].5f %[3].5f %[3].5f %[3].5f %[3].5f \
%[3].5f %[3].5f \n",a1,a2,a3,a4,a5,a6,a7,a8,a9);
WriteFile(myFile,body,lstrlen(body),0,NULL);
CloseHandle(myFile);
問題はコンパイルされないことです。次のようなエラーを言います:
error C2275: 'HANDLE' : illegal use of this type as an expression
error C2146: syntax error : missing ';' before identifier 'myFile'
error C2065: 'myFile' : undeclared identifier
warning C4047: '=' : 'int' differs in levels of indirection from 'HANDLE'
error C2143: syntax error : missing ';' before 'type'
error C2065: 'myFile' : undeclared identifier
warning C4022: 'WriteFile' : pointer mismatch for actual parameter 1
error C2065: 'myFile' : undeclared identifier
warning C4022: 'CloseHandle' : pointer mismatch for actual parameter 1
これらは C++ のエラーではなく、コンパイルされましたが、リンクされませんでした。どうすればこれを解決できますか。
これまでに使用した同様の機能があることに注意してください。エラーとして検出されないもの。
HANDLE myFile=CreateFile("filename.txt",GENERIC_WRITE,FILE_SHARE_WRITE,0,\
CREATE_NEW,
FILE_ATTRIBUTE_NORMAL,0);
char* HeadingStr="a1(m) a2(m) a3(m) a4(m) a5(m) a6(m) a7(m)\
a8(m) a9(m)\n";
WriteFile(myFile,HeadingStr,lstrlen(HeadingStr),0,NULL);
CloseHandle(myFile);
これでエラーは表示されません。それは同じファイルにあり、エラーの上の別の関数にあります。これは WinMain にあり、上記は WndProc 関数にあります。