LabWindows/CVI是否有类似于_setmode()的东西来设置文件(或流)转换模式为二进制或文本?



我正在使用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)不支持。

所以,总而言之,我的解决方案是包含SDK来给我_setmode的定义,以及在我的非自动生成代码中包含以下内容:
#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

相关内容

  • 没有找到相关文章

最新更新