1.C语言FILE不能创建unicode编码文本文件,文件头加0xff和0xfe之后
你到底用二进制写 还是用ASCII码写文件,你打开时记事本使用的是ASCII码。
用二进制方式创建文件,文件开头需要写入0xff、0xfe两个字节,然后再写Unicode字符串(也是按二进制数据写入)。
fwprintf需要一个FILE句柄,关键是看你创建FILE句柄时是否让这个文件以UNICODE形式存储数据了。类似:
FILE* fileHandle;
// Create an the xml file in text and Unicode encoding mode.
if ((fileHandle = _wfopen( L"_wfopen_test.xml",L"wt+,ccs=UNICODE")) == NULL) // C4996
// Note: _wfopen is deprecated; consider using _wfopen_s instead
{
。。..
}
下面的示例来自MSDN:
// crt__wfopen.c
// compile with: /W3
// This program creates a file (or overwrites one if
// it exists), in text mode using Unicode encoding.
// It then writes two strings into the file
// and then closes the file.
#include
#include
#include
#include
#define BUFFER_SIZE 50
int main(int argc, char** argv)
{
wchar_t str[BUFFER_SIZE];
size_t strSize;
FILE* fileHandle;
// Create an the xml file in text and Unicode encoding mode.
if ((fileHandle = _wfopen( L"_wfopen_test.xml",L"wt+,ccs=UNICODE")) == NULL) // C4996
// Note: _wfopen is deprecated; consider using _wfopen_s instead
{
wprintf(L"_wfopen failed!\n");
return(0);
}
// Write a string into the file.
wcscpy_s(str, sizeof(str)/sizeof(wchar_t), L"\n");
strSize = wcslen(str);
if (fwrite(str, sizeof(wchar_t), strSize, fileHandle) != strSize)
{
wprintf(L"fwrite failed!\n");
}
// Write a string into the file.
wcscpy_s(str, sizeof(str)/sizeof(wchar_t), L"");
strSize = wcslen(str);
if (fwrite(str, sizeof(wchar_t), strSize, fileHandle) != strSize)
{
wprintf(L"fwrite failed!\n");
}
// Close the file.
if (fclose(fileHandle))
{
wprintf(L"fclose failed!\n");
}
return 0;
}
这个
2.LP是什么意思啊
在摄像机中: LP与SP是一种录象模式:SP指正常录象模式,LP指慢录模式;如60分钟的录像带用SP模式录象就能使用60分钟,用LP模式录象就能使用120分钟,使用LP模式记录效果会有下降。
DV格式的情况:60分钟DV数码摄像带用LP模式能使用90分钟,LP的记录画质与SP的没有差别,但用LP记录的带子不能够后配音,兼容性能也比较差,就是说,这台机器的LP模式记录的带子,到另一台DV机不一定能够正常播放。 对数码录音笔而言: LP(长时间录音)、SP(标准录音)、HQ(高质量录音)是三种基本模式。
3.一个对话框的vc代码
受楼上兄弟的启发,给你简单写了一个,为了不使程序过于复杂话,只弄了一个按钮,点击打开C盘#include BOOL CALLBACK DlgProc(HWND, UINT, WPARAM, LPARAM);#define IDD_DLG 2000#define IDC_OK 1000#define IDC_STATIC 1001 int WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR, int) { return DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_DLG), NULL, DlgProc, 0); } BOOL CALLBACK DlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { case WM_COMMAND: switch(LOWORD(wParam)) { case IDC_OK: ShellExecute(hDlg, "open", "C:\\", NULL, NULL, SW_SHOWNORMAL); } break; case WM_CLOSE: EndDialog(hDlg, 0); break; default: return FALSE; } return TRUE; } 资源文件,随便起个名字,后缀.rc,和主文件一起编译。
#include #define IDD_DLG 2000#define IDC_OK 1000#define IDC_STATIC 1001 IDD_DLG DIALOG DISCARDABLE 0, 0, 150, 150 STYLE WS_OVERLAPPED | WS_SYSMENU | DS_CENTER FONT 10, "新宋体" CAPTION "title" BEGIN CTEXT "Open Disk C", IDC_STATIC, 0, 30, 150, 25 PUSHBUTTON "click me!", IDC_OK, 50, 60, 50, 15 END 如果用不来资源文件,再给你个直接可以跑的,就是定义对话框麻烦点:#include BOOL CALLBACK DlgProc(HWND, UINT, WPARAM, LPARAM);// DWORD align#define align_4(pmem) LPWORD((((LONG)pmem + 3) >> 2) // unicode string#define ustr(pmem, szText, cchWideChar)\ MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, szText, -1, (LPWSTR)pmem, cchWideChar)// child id#define IDD_DIALOG 2000#define IDC_OK 1000#define IDC_STATIC 1001 int WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR, int) { HGLOBAL hMem; LPDLGTEMPLATE lpdt; LPDLGITEMTEMPLATE lpdit; LPWORD lpw; LRESULT ret; hMem = GlobalAlloc(GMEM_FIXED | GMEM_ZEROINIT, 1024); if(!hMem) return -1; lpdt = (LPDLGTEMPLATE)hMem; lpdt->style = WS_OVERLAPPED | WS_SYSMENU | DS_CENTER | DS_SETFONT; lpdt->cdit = 2; lpdt->cx = 150; lpdt->cy = 150; lpw = (LPWORD)(lpdt + 1); // menu *lpw++ = 0; // no menu // class *lpw++ = 0; // use predefined dialog class // title lpw += ustr(lpw, "title", 60); // font *lpw++ = 10; // size lpw += ustr(lpw, "新宋体", 40); // type face lpw = align_4(lpw); // aligned on DWORD boundary lpdit = (LPDLGITEMTEMPLATE)lpw; lpdit->style = WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON; lpdit->x = 50; lpdit->y = 60; lpdit->cx = 50; lpdit->cy = 15; lpdit->id = IDC_OK; lpw = (LPWORD)(lpdit + 1); *lpw++ = 0xFFFF; *lpw++ = 0x0080; // button lpw += ustr(lpw, "click me!", 40); *lpw++ = 0; // no creation data lpw = align_4(lpw); // aligned on DWORD boundary lpdit = (LPDLGITEMTEMPLATE)lpw; lpdit->style = WS_CHILD | WS_VISIBLE | SS_CENTER; lpdit->x = 0; lpdit->y = 30; lpdit->cx = 150; lpdit->cy = 25; lpdit->id = IDC_STATIC; lpw = (LPWORD)(lpdit + 1); *lpw++ = 0xFFFF; *lpw++ = 0x0082; // static lpw += ustr(lpw, "Open Disk C", 40); *lpw++ = 0; // no creation data ret = DialogBoxIndirectParam(hInst, lpdt, NULL, DlgProc, 0); GlobalFree(hMem); return ret; } BOOL CALLBACK DlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { case WM_COMMAND: switch(LOWORD(wParam)) { case IDC_OK: ShellExecute(hDlg, "open", "C:\\", NULL, NULL, SW_SHOWNORMAL); } break; case WM_CLOSE: EndDialog(hDlg, 0); break; default: return FALSE; } return TRUE; }。
4.prn文件怎么转换为word
操作方法如下:
1、首先,使用Word打开PDF文件;
2、然后,单击“开启编辑”(Enable Editing);
3、此时,Word将会自动对PDF文件进行转换成Word;
4、现在就已经成功将PDF转换成Word文档了,可以在Word中任意修改和编辑,编辑完毕后保存即可。
5.请教Ushort类型的输出格式是什么
自己定义个头文件声明下,Windows,VC在windef.h下有这些定义: typedef unsigned long DWORD; typedef int BOOL; typedef unsigned char BYTE; typedef unsigned short WORD; typedef float FLOAT; typedef FLOAT *PFLOAT; typedef BOOL near *PBOOL; typedef BOOL far *LPBOOL; typedef BYTE near *PBYTE; typedef BYTE far *LPBYTE; typedef int near *PINT; typedef int far *LPINT; typedef WORD near *PWORD; typedef WORD far *LPWORD; typedef long far *LPLONG; typedef DWORD near *PDWORD; typedef DWORD far *LPDWORD; typedef void far *LPVOID; typedef CONST void far *LPCVOID; typedef int INT; typedef unsigned int UINT; typedef unsigned int *PUINT;。
6.如何将导出表的rva转成foa
/将RVA转换为FOA(可由lpFoa传出FOA、可由lpSection传出节序号,不在节中节序号为-1)
BOOL RvaToFoa(DWORD dwRva, LPDWORD lpFoa = NULL, LPWORD lpSection = NULL) const;
//将FOA转换为RVA(可由lpRva传出RVA、可由lpSection传出节序号,不在节中节序号为-1)
BOOL FoaToRva(DWORD dwFoa, LPDWORD lpRva = NULL, LPWORD lpSection = NULL) const;
BOOL CPeFile::RvaToFoa(DWORD dwRva, LPDWORD lpFoa, LPWORD lpSection) const
{
assert(IsAttch());
WORD nSection = m_lpNtHeader->FileHeader.NumberOfSections;
DWORD dwAlignment = m_lpNtHeader->OptionalHeader.SectionAlignment;
for (size_t i = 0; i = dwBegin && dwRva FileHeader.NumberOfSections;
for (size_t i = 0; i = dwBegin && dwFoa