lm68140318 发表于 2023-6-19 05:26:41

libxl-----Format

        Book* book1 = xlCreateXMLBook();

       
        if (!book1) {
                ExitProcess(0);
        }

        book1->setKey(L"libxl", L"windows-28232b0208c4ee0369ba6e68abv6v5i3");//注册

        book1->load(_T("D:\\bb\\ex.xlsx")); //读取excel文件

        Sheet* sheet1 = book1->getSheet(0);//获取指定序号的表

        CString str;
        if (sheet1) {
                const TCHAR* p = sheet1->readStr(1, 2); //读取字符串
                str.Format(_T("%s"), *p);
        }

        ::OutputDebugString(str);



我的问题:str.Format(_T("%s"), *p);   显示访问权限冲突    ?????

isdkz 发表于 2023-6-19 08:59:40

你的代码片段中,问题出在这一行:

str.Format(_T("%s"), *p);


这里, *p 应该是你尝试去获取一个字符串指针指向的第一个字符。但是,由于Format函数需要的是一个字符串指针,而不是一个字符,这将导致访问违规。

你需要将*p改为p,如下:

str.Format(_T("%s"), p);


上述修改应该可以解决你的问题。如果你仍然遇到问题,那可能是由于sheet1->readStr(1, 2);这一行代码没有返回有效的字符串导致的。在这种情况下,你需要确认你正在读取的单元格确实包含了一个字符串。
页: [1]
查看完整版本: libxl-----Format