编译时候出现 :filename.cpp|| undefined reference to `CoCreateInstance@20
这种错误,是codeblock的一个bug.
需要把 链接的库加载项目的的鼠标右键的properties..里,而不是build options..里
选择properties打开project/target options窗口,右下角的按钮 Project's build options...打开
Project build options窗口,这个窗口同项目鼠标右键菜单中的build options竟然不同一,所以在设置中往往
在“正确”设置后,出现了错误,这两个窗口往往都需要同时设置,从最后产生的编译命令行分析,不过是重复加入,实在是奇怪。
需要把mingw\lib下面的库和wxWidges lib\gcc_lib或gcc_dll下面的库都加入到 ,Link setting 下的link Libraries 里,全部加入
星期六, 六月 27, 2009
星期五, 六月 26, 2009
JBOSS通过JAAS框架验证用户后,如何得到用户所有的角色?
代码:
private void findRole() throws PolicyContextException {
// Get the Authenticated Subject
Subject subject = (Subject) PolicyContext.getContext("javax.security.auth.Subject.container");
// Now look for a Group called Roles
Set principals = subject.getPrincipals(Principal.class);
Iterator iter = principals.iterator();
while(iter.hasNext()) {
Principal p = (Principal)iter.next();
if(p instanceof SimpleGroup) {
SimpleGroup sg = (SimpleGroup)p;
if("Roles".equals(sg.getName())) {
Enumeration en = sg.members();
while(en.hasMoreElements()) {
String role = en.nextElement().toString();
if(role != null) {
setRole(role);
}
}
}
}
}
}
private void findRole() throws PolicyContextException {
// Get the Authenticated Subject
Subject subject = (Subject) PolicyContext.getContext("javax.security.auth.Subject.container");
// Now look for a Group called Roles
Set principals = subject.getPrincipals(Principal.class);
Iterator iter = principals.iterator();
while(iter.hasNext()) {
Principal p = (Principal)iter.next();
if(p instanceof SimpleGroup) {
SimpleGroup sg = (SimpleGroup)p;
if("Roles".equals(sg.getName())) {
Enumeration en = sg.members();
while(en.hasMoreElements()) {
String role = en.nextElement().toString();
if(role != null) {
setRole(role);
}
}
}
}
}
}
星期一, 六月 22, 2009
如何在wxWidgets 编译生成wxdbgrid组件
命令行,
wxWidgets-2.8.10\build\msw>mingw32-make -f makefile.gcc UNICODE=1 BUILD=release MONOLITHIC=0 USE_ODBC=1 USE_GUI=1
则lib\gcc_lib下得到libwxmsw28u_dbgrid.a
wxWidgets-2.8.10\build\msw>mingw32-make -f makefile.gcc UNICODE=1 BUILD=release MONOLITHIC=0 USE_ODBC=1 USE_GUI=1
则lib\gcc_lib下得到libwxmsw28u_dbgrid.a
星期四, 六月 11, 2009
如何用cygwin在控制台 显示彩色的字符
由于cygwin支持mingw,而mingw是不依赖cygwin.dll的。而cygwin.dll是在window下模拟
Linux的API的库,这样造成了一些现实彩色字符的不同技术。
cygwin.dll直接至此ANSI 颜色控制,支持ESC 累得颜色编码,所以直接用printf("\033[1;34m hello \033[0m“)就可以打印出一个蓝色的字符串了。
但是如果不是用cygwin.dll,而是通过-mno-cygwin编译选项,是用window crt.dll库,则ANSI颜色控制码失去了作用。此时必须使用window下的方法。
所以,这就要求代码能区别本程序的依赖,是否使用了-mno-cygwin编译出来的代码。
通过深入研究,发现了 -mno-cygwin编译的依赖宏,并在自己的程序根据是否有特定的宏的出现,作为信号灯来识别。
步骤如下:
发现编译器预编译的宏
g++-3 -E -dM -mno-cygwin -c testdb.cpp >2.txt
生成编译器预编译文件,发现了定义的宏,通过搜索发现了:__MINGW_H 宏。
因此在自己的文件中加入:
#ifdef __MINGW_H
static int MINGW_FLAG=1;
#else
static int MINGW_FLAG=0;
Linux的API的库,这样造成了一些现实彩色字符的不同技术。
cygwin.dll直接至此ANSI 颜色控制,支持ESC 累得颜色编码,所以直接用printf("\033[1;34m hello \033[0m“)就可以打印出一个蓝色的字符串了。
但是如果不是用cygwin.dll,而是通过-mno-cygwin编译选项,是用window crt.dll库,则ANSI颜色控制码失去了作用。此时必须使用window下的方法。
所以,这就要求代码能区别本程序的依赖,是否使用了-mno-cygwin编译出来的代码。
通过深入研究,发现了 -mno-cygwin编译的依赖宏,并在自己的程序根据是否有特定的宏的出现,作为信号灯来识别。
步骤如下:
发现编译器预编译的宏
g++-3 -E -dM -mno-cygwin -c testdb.cpp >2.txt
生成编译器预编译文件,发现了定义的宏,通过搜索发现了:__MINGW_H 宏。
因此在自己的文件中加入:
#ifdef __MINGW_H
static int MINGW_FLAG=1;
#else
static int MINGW_FLAG=0;
Linux ANSI 颜色控制
控制码 ^ESC,在VI状态下用Ctrl+v,ESC的组合输入,
在C语言中,可以通过printf直接打印出控制符号
ANSI控制码的说明
具体的摘抄一些如下:
[0m 关闭所有属性
[1m 设置高亮度
[4m 下划线
[5m 闪烁
[7m 反显
[8m 消隐
[30m -- [37m 设置前景色
[40m -- [47m 设置背景色
[nA 光标上移n行
[nB 光标下移n行
[nC 光标右移n行
[nD 光标左移n行
[y;xH设置光标位置
[2J 清屏
[K 清除从光标到行尾的内容
[s 保存光标位置
[u 恢复光标位置
[?25l 隐藏光标
[?25h 显示光标
在C语言中,可以通过printf直接打印出控制符号
ANSI控制码的说明
具体的摘抄一些如下:
[0m 关闭所有属性
[1m 设置高亮度
[4m 下划线
[5m 闪烁
[7m 反显
[8m 消隐
[30m -- [37m 设置前景色
[40m -- [47m 设置背景色
[nA 光标上移n行
[nB 光标下移n行
[nC 光标右移n行
[nD 光标左移n行
[y;xH设置光标位置
[2J 清屏
[K 清除从光标到行尾的内容
[s 保存光标位置
[u 恢复光标位置
[?25l 隐藏光标
[?25h 显示光标
星期日, 六月 07, 2009
SQLITE 使用g++来编译
http://www.mail-archive.com/sqlite-users@sqlite.org/msg30132.html
SQLite is ANSI C, so youshould compile it with gcc. It will still be usable within your C++library/project, as sqlite3.h qualifies all functions extern "C".
gcc -c sqlite3.c
g++ -c main.cpp
g++ -o program main.o sqlite3.o -lpthread -ldl
订阅:
博文 (Atom)