博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
VS2010 & DirectX11 SDK & Windows SDK 编程过程中的 错误/异常/解决方案 记录 【三】
阅读量:5020 次
发布时间:2019-06-12

本文共 1497 字,大约阅读时间需要 4 分钟。

  • 使用 vsnprintf() 获取 formt 后 整个字符串的长度

 va_list args;

 len = vsnprintf( null, 0, sFormat, args ); 可以获取 待合并所有 变参后整个最终 sFormat 的字符串长度, 要求 sFormat 里的 %?  标记的个数要和 args 的变参个数 一致, 否则会报错。

 

  • 关于 windows 共享内存 CreateFileMapping 、 OpenFileMapping 、 MapViewOfFile 的错误使用方式

有数据结构:

struct    SMAO_info{    int        m_flag;    void*    m_data_ref;};struct    Node{    struct SMAO_info    m_info;    int                 iData_1;    int                 iData_2;    int                 iData_3;    int                 iData_4;    int                 iData_5;        ...        BigData                m_bigData;    };

在创建 共享文件时, 采用:

HANDLE  hMapFile = CreateFileMapping( INVALID_HANDLE_VALUE, ... , sizeof(  struct Node ));

并马上进行相关的内容信息维护:

Node* pNode = ( Node*)MapViewOfFile( hMapFile);pNode->m_info.m_filag = 1;pNode->m_info.m_data_ref = pNode->big_data;

问题就出在这里了, pNode->m_info.m_data_ref 被赋值为 一个绝对地址, 但一般 createFileMapping 和 openFileMapping 在不同的两个进程中被调用, 共享时 pNode-》m_info。m_data_ref 用 mapViewOfFile() 出来的地址不应该会是相同点, 这种方式实现的共享时不安全的, 将其修改为 

struct    SMAO_info{    int        m_flag;    size_t  m_data_ref_offset;};

及相对于被映射的 共享数据头 的偏移值, 即使不同进程映射出来的起始地址不同, 但仍能通过偏移量 计算获取到 有效的 地址。

 

  • ACE 无法解析的符号

ACE_TEST1.obj : error LNK2019: 无法解析的外部符号 "int __cdecl ace_main_i(int,char * * const)" (?ace_main_i@@YAHHQAPAD@Z) ,该符号在函数 "private: virtual int __thiscall ACE_Main::run_i(int,char * * const)" (?run_i@ACE_Main@@EAEHHQAPAD@Z) 中被引用

将 主函数 改为 int main( int argc, char** argv), 具体原因请参考:

转载于:https://www.cnblogs.com/Wilson-Loo/p/3175135.html

你可能感兴趣的文章
Codeforces 887D Ratings and Reality Shows
查看>>
论文《A Generative Entity-Mention Model for Linking Entities with Knowledge Base》
查看>>
CentOS 6.7编译安装PHP 5.6
查看>>
Linux记录-salt分析
查看>>
Android Studio默认快捷键
查看>>
发布开源库到JCenter所遇到的一些问题记录
查看>>
第七周作业
查看>>
函数式编程与参数
查看>>
flush caches
查看>>
SSAS使用MDX生成脱机的多维数据集CUB文件
查看>>
ACM_hdu1102最小生成树练习
查看>>
MyBatis源码分析(一)--SqlSessionFactory的生成
查看>>
android中ListView点击和里边按钮或ImageView点击不能同时生效问题解决
查看>>
CTF常用工具之汇总
查看>>
java的面向对象 (2013-09-30-163写的日志迁移
查看>>
HDU 2191 【多重背包】
查看>>
51nod 1433 0和5【数论/九余定理】
查看>>
【AHOI2013复仇】从一道题来看DFS及其优化的一般步骤和数组分层问题【转】
查看>>
less 分页显示文件内容
查看>>
如何对数据按某列进行分层处理
查看>>