我正在使用gSoap生成ANSI C源代码,我想在LabWindows/CVI环境中构建,在Windows 7, 64位操作系统上。gSoap文件stdsoap2.c包含_setmode()函数的几个实例,具有以下原型:
int _setmode (int fd, int mode);
其中fd是文件描述符,mode设置为_O_TEXT或_O_BINARY。
奇怪的是,即使LW/CVI包含了一个接口到微软的SDK,这个SDK不包含一个原型到_setmode在它的任何包含的头文件,即使帮助链接到SDK包含了函数的信息。
有没有人知道LabWindows/CVI中用于将文件(或流)翻译模式设置为文本或二进制的方法?
谢谢,Ryyker
结束这个问题的循环。
由于我在上面评论中列出的原因,我不能使用唯一提供的答案。
虽然我确实使用了SDK,但这并不是为了选择不同版本的OpenFile函数,而是为了支持使用自动代码生成器使用的函数,_setmode(),但我的主要开发环境(LabWindows/CVI)不支持。
#define _O_TEXT 0x4000 /* file mode is text (translated) */
#define _O_BINARY 0x8000 /* file mode is binary (untranslated) */
所以,这篇文章描述了我实际上所做的事情,我将把@gary提供的答案标记为答案,因为它是在球场上。谢谢@gary。 听起来您只是想以ASCII或二进制格式打开文件。因此,您应该能够用LW/CVI OpenFile()
函数替换_setmode()
的实例,如下所述。下面是一个将文件读取为二进制文件的简短示例。
char filename = "path//to//file.ext"
int result;
result = OpenFile(filename, VAL_READ_ONLY, VAL_OPEN_AS_IS, VAL_BINARY);
if (result < 0)
// Error, notify user.
else
// No error.
也注意这个来自页面的警告:
注意 Windows SDK还包含OpenFile函数。如果你包含windows.h而不包含formation .h,您将得到compile