linux rtti问题.dynamic_cast失败

问题描述

linux rtti问题.dynamic_cast失败

class base
{
public:
virtual void foo()=0;
};

class a:virtual public base
{
public:
virtual void foo(){cout <<"hello"<<endl;}
};

在a和b动态库中都有 以上的定义。在a中实例化了 a 将对象的基类指针(base*)a发送给b 动态库中进行转换 dynamic_cast(obj)返回NULL。。。这在WINDOWS下是正常的。。请问这里rrti出现了什么问题需要怎么解决?

解决方案

http://www.cnblogs.com/zhyg6516/archive/2011/03/07/1971898.html

时间: 2024-08-03 05:03:33

linux rtti问题.dynamic_cast失败的相关文章

acpi-ACPI Linux下poweroff关机失败,会再次启动(非重启)

问题描述 ACPI Linux下poweroff关机失败,会再次启动(非重启) 两台机子用直连线连接,利用网络唤醒使机子开机,然后关机被唤醒方,可以正常关机,再次网络唤醒,再次关机被唤醒方,这是关机后(风扇已停),机子会重新启动. 分析可能是BIOS没有将网卡状态即时清掉,通过询问BIOS方,BIOS在每次S5模式时会将网卡状态sts清掉.BIOS中ACPI是处于S3模式下的. 请问会不会跟BIOS没有处理S3模式有关?linux下poweroff命令关机时,用到的是哪个模式关机? 附:wind

Linux上安装RAC失败后彻底清除CRS的步骤

Linux上安装RAC失败,彻底清除CRS步骤如下: 1.在所有节点停止nodeapps srvctl stop nodeapps -n nodename 2.删除crs自动启动程序 rm /etc/oracle/* rm -f /etc/init.d/init.cssd rm -f /etc/init.d/init.crs rm -f /etc/init.d/init.crsd rm -f /etc/init.d/init.evmd rm -f /etc/rc2.d/K96init.crs r

linux下adb连接失败的怎么解决

不管是在Windows系统还是在Linux系统中,相信不少用户或开发者都遇到过手机adb连接不上的情况.其实出现这种问题很多时候是由于 adb冲突导致的,毕竟很多软件都有自己的adb链接.那么,出现这种问题该怎么办呢?下面就给大家介绍下Mac或者linux下adb连接失败的解决办法. 1.查看设备VenderID 在mac下 或者Linux打开终端(Terminal),linux下可以按快捷键(CTRL+T,忘了具体是不是大家去试试或者查查),mac下Control+space,输入Termin

使用logback 写入日志,部署到linux服务器上后失败问题?

问题描述 使用logback 写入日志,部署到linux服务器上后失败问题? 使用logback 写入日志,在本地测试时可以的,部署到linux服务器上后,写入失败,连日志文件都没有生成,是怎么回事? 解决方案 是不是权限问题,能不能访问对应的目录等 解决方案二: 有可能是路径的问题,仔细看看linux上和windows上路径设置是不一样的

java socket 在linux环境接收报文失败

问题描述 java socket 在linux环境接收报文失败 新建了一个socket链接,windows环境下一切正常. 部署到LINUX环境下时,如果是简短的报文,服务端接收也是没问题的. 但是如果报文长度超过一定值(注:在windows下成功接收的报文), 在LINUX下却接收失败! 求解! 解决方案 检测socket是否断开 解决方案二: 能不能上代码看看,你给的信息还是太少了,不太好确定啊

C++ RTTI中dynamic_cast的用法

我们知道在C++中基类的指针和引用可以指向派生类,因为这是安全的,派生类一定包含了基类 需要的所有的属性和方法,这是向上转换,我们同时还知道虚函数可以随着指针和引用指向的 对象不同而使用不同的方法,这是虚函数的自适应. 打个例子: 点击(此处)折叠或打开 class testb {         private:                 int a;         public:                 testb(int ai){a=ai;}                

linux下解密AES失败的问题

问题描述 我在linux系统下解密AES失败,上网查了资料说是加上下段代码就能解决://防止linux下随机生成keySecureRandomsecureRandom=SecureRandom.getInstance("SHA1PRNG");secureRandom.setSeed(password.getBytes());但事实是我加上了这行代码,放到几台机器当中去试时发现,还是解密失败,有大侠遇到过吗? 解决方案 解决方案二:kgen.init(128,secureRandom);

Linux操作系统启动httpd失败的解决方法

Red Hat Linux enterprise 5 start httpd faild linux httpd: httpd 启动 failed 我在虚拟机里面遇到此问题,试了很多方法都没法启动,后来发现,问题出在/etc/httpd/conf/目录里面有一个叫httpd.conf的文件.在同一目录下还有另外一个叫httpd.conf.bak,只要把httpd.conf.bak的内容复制httpd.conf文件中,覆盖原来的内容就能启动了,到shell里运行service httpd star

Linux下读取文件失败

问题描述 这是我的读取代码: public static List<String> addFileToList(String bKFilePath) {BufferedReader bkFile = null;List<String> list = new ArrayList<String>();try {LOG.debug("bKFilePath:"+bKFilePath);boolean isReadable=new File(bKFilePat