C和C++中WINAPI的区别
Difference Between WINAPI in C and C++
我正在从驱动程序读取数据。驱动程序附带了如何基于驱动程序开发应用程序的示例。这些例子是几年前写的。他们使用WINAPI和C。现在我将使用他们的一些头文件。它们定义了数据结构和各种其他内容。
我尝试在C++中创建一个WINAPI,并尝试链接到这些文件。但正如这里所解释的,在最后一个答案中,我非常相信我的代码也有同样的问题。
现在,我不能按照建议去做。我的程序很长,不能弄乱头文件。它们很复杂。
我的选择是完全用C语言创建我的项目(我希望它能解决问题)。
首先,我将文件重命名为.cpp t0.c。(我甚至不知道这两种编程语言之间的区别。到目前为止,它们的区别没有什么区别。)主要问题
我使用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函数中。
相关文章:
- C++中std::resize(n)和std::shrink_to_fit之间的区别
- int(c) 和 c-'0' 之间的区别。C++
- 向量 <int> a {N, 0} 和 int arr a[N] = {0} 的时间复杂度有什么区别
- C++ - "!pointer"和"pointer == nullptr"的区别?
- C++ 使用 assign 函数的字符串与直接使用 '=' 更改值的字符串之间的区别
- std::atomic和std::condition_variable wait,notify_*方法之间的区别
- 在 .h 文件中的类中声明静态变量和在.cpp文件中声明"global"变量有什么区别
- WinAPI挂钩鼠标
- 我是C++编程的新手,这些代码之间有什么区别,我应该使用哪一个
- 在 const 函数中通过引用和指针返回之间的区别
- 我想知道长双倍和双倍之间的区别
- 返回常量对象引用 (getter) 和仅返回字符串有什么区别?
- 将执行、作业和WinAPI相乘
- 返回递归调用和仅递归调用的区别
- Qt:remove() 和 rmdir() 有什么区别
- 这 4 个 lambda 表达式之间有什么区别?
- 结构体 S { int align; } 之间的区别;(struct 关键字后的名称)和 struct { int al
- (double) 和 double() 之间的区别
- "LRESULT CALLBACK WinProc"和"LRESULT WINAPI WinProc"的区别
- C和C++中WINAPI的区别