- 浏览: 911450 次
- 性别:
- 来自: 深圳
最新评论
-
tcspecial:
陈宇飞 写道reset()为什么不可以用了,版本低了,还是头文 ...
QTreeView 使用自定义Model -
陈宇飞:
reset()为什么不可以用了,版本低了,还是头文件呢
QTreeView 使用自定义Model -
gamesliang:
海康SDK截图 -
tadpole_java:
环形缓冲区类(C++源码)绝对可用.....转到你网易的微博上 ...
QByteArray储存二进制数据(包括结构体,自定义QT对象) -
tcspecial:
tadpole_java 写道经常看看您的帖子,把它当成教科书 ...
QByteArray储存二进制数据(包括结构体,自定义QT对象)
文章列表
Tomcat 6.0 下下载中文名称的文件,会报404错误
根据错误发现中文名称被转化了,因此必然找不到%E5%AE....xls这样的文件
解决方案: 在server.xml 加入URIEncoding="UTF-8"就行了
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectP ...
在C++下导出excel还是件比较棘手的,虽说目前有很多方式导出,但是都不太方便. 没有像java下强大的poi直接导出二进制格式的excel文件.
1. QT下通过com组件调用excel
pro文件添加: LIBS += -lqaxserver -lqaxcontainer
获取com api文档:
QAxObject* excel = new QAxObject("excel.Application"); // wps 下 ET.Application
QFile outfile("d:/excel_doc. ...
安装postgresql9.2后,QT连接数据库:
QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL","test");
db.setDatabaseName("sqlscada");
//db.setHostName("127.0.0.1");
db.setHostName("192.168.1.112");
db.setPort(5432);
db.setUserName("postgres");
d ...
C#在调用c/c++动态库时,有时传入一个超大结构体数组时,运行时会报错: "内部限制:结构太复杂或太大"
// 结构体定义
[StructLayout(LayoutKind.Sequential,Pack=1)]
public struct hdata_element_t
{
public byte Valid;
public float Value;
}
[StructLayout(LayoutKind.Sequential,Pack=1)]
public struct group_reply_t
{
public int t ...
有时在用VC6调试过程中,老遇到这个讨厌的提示"One or more breakpoints cannot be set and have been disabled",然后就跑到第一行去执行了.
看网上大多都是在设置中删除所有断点, 然后再重新设置新断点. 照做了一下,还是不能解决问题, 直到重新编译了程序(依赖库dll)才解决了问题. 这是因为本工程调用的dll太过了陈旧,dll对应的工程发生改变了. 导致库与代码不匹配,必然不能设置断点了
在开发中常会用到比较复杂的容器时,QMap QList会嵌套使用. 在VC6中定义 QMap<QString,QList<CHisDataItem>> map,编译时老报map未定义的错误.
这是因为VC把>>当作一操作符了,以为map是一变量,所以编译出错. 我们重新命名一下就能解决这个问题.
// 方法一,起别名
typedef QList<CHisDataItem> HisDataList;
QMap<QString,HisDataList> map;
// 方法二, 在QLis ...
C/C++内回调函数一般通过传递函数指针来实现,函数指针在C#中对应的就是委托.
// 传入函数指针
typedef void (*FUNC)(int,char*);
JNAAPI bool processCallback(int a,FUNC func);
public delegate void CallbackDelegate(int a,string param); //声明委托
// 接口定义
[DllImport("jnalib.dll", EntryPoint = "processCallback")]
...
因为公司一直都是做C++开发的,因客户需要要提供C#版本接口,研究了一下C#,发现其强大简洁, 在跨语言调用方面封装的很彻底,提供了强大的API与之交互.这点比JNA方便多了. Java与C#都只能调用C格式导出动态库,因为C数据类型比较单一,容易映射. 两者都是在本地端提供一套与之映射的C#/java描述接口,通过底层处理这种映射关系达到调用的目的.
一. 结构体的传递
#define JNAAPI extern "C" __declspec(dllexport) // C方式导出函数
typedef struct
{
...
函数指针能够很方处理重复性工作,简化代码逻辑. 在C语言函数指针一般用于回调,传递函数名, 当数据回来时,执行函数指针所指向函数.
下面看函数指针在计算器程序的经典运用:
int add(int a,int b)
{
return a+b;
}
...
$ mysql -h 192.168.1.8 -u root -p
Enter password:
ERROR 1130: Host '192.168.1.110' is not allowed to connect to this MySQL server
$ telnet 192.168.1.110 3306
host 192.168.1.4 is not allowed to connect to this mysql server
mysql 默认安装是不允许远程登陆,只能通过localhost登录,因此你需要为你访问主机授权.
一. 主机授权
...
最近找到两个能将java API文档打包成chm的小工具,用起来不错,分享一下; 终于结束用浏览器打开API文档,用肉眼不停的搜索类库的历史了.
1. java2chm
安装之前必须先安装 htmlhelp.exe,然后直接在API文档目录下运行java2chm命令,成功后,即在当前目录下生成*.chm,方便快捷.
刚开始使用时,就报如下错误:
经过多次测试,发现进入目录错误. 在%JAVA_DOC%下是有一个index.html,在%JAVA_DOC%\api下面也有一个index.html, 进入a ...
JNA返回结构体: 在C++中返回一个大结构体比较耗资源的,不可取.一般可以通过传入指针或变量引用值, 在方法中修改达到返回结果的目的。 java对象默认的是传地址引用,那么我们就可以在C中修改java对象后返回,减少对象传递时的性能损耗。
// 结构体定义
typedef struct _Point
{
int x;
int y;
}Point;
/**
*方式一: 在C中传入结构体指针
*/
JNAAPI bool translate( Point *pt,int dx,int dy )
{
pt->x=pt->x+dx ...
JNA以结构体数组为参数进行调用:
////// C++
// student 结构体定义
typedef struct
{
int age;
char name[20];
}Student;
// 修改java对象的属性值
JNAAPI bool changeObjs(Student stu[],int size)
{
for(int i=0;i<size;i++)
{
stu[i].age*=10;
strcpy(stu[i].name,"wokettas");
}
return true;
}
...
程序调试执行时报如下错误:
崩溃代码:
// 结构体定义
typedef struct
{
// 数据条目个数
int iCount;
// 数据条目数组,按1s频率采样, 86400个数据
CHisDataItem data[60*60*24];
} CHisDataOfOneDay;
// 崩溃语句
if(pFuncName=="getDayHisData")
{
QString strTag=pPara[0].toString();
QDate date=pPara[1].toDa ...
总结一下经常用到的命令:
1. 解压*.tar.xz文件
$xz -d file.tar.xz
$tar -xvf file.tar
*.tar.xz文件相当于被压缩了两次,第一次打包成*.tar文件后再对*.tar进行xz压缩
2. yum源下载缺失库
linux下编译安装软件最麻烦的就是缺失各种各样的库;
错误: cannot found lSM, 缺失libSM.so这样的库
$yum search libSM (yum源查找该库包括在那个软件包中)
$yum install libSM-devel
错误: libssl.so not found ...