VS2005中编译dll文件, 出现"共享段无法找到"的错误及解决办法

【嵌入式开发学习】__Keil MDK的优化选项 本文将围绕Keil MDK优化选项,以及相关拓展知识(微库、实际应用、调试)进行讲述,希望能对你的项目开发有所帮助。我们所指的优化,主要包括两个方面:代码大小(Size)代码性能(运行时间)当然,如果选择编译器(AC5、AC6)不同,优化选项也有差异(下面讲述)。某些项目MCU容量有限时,你除了修改代码(优化开支),同时你有必要使用优化选项。某些项目(比如某算法)需要高效(最短时间)运行,此时有必要使用优化选项。 阅读详情

今天我要做个dll文件,以提供给其它程序使用,按照向导用VS2005创建一个WIN32的DLL文件,在VS2005中,不再要求用.def文件来定义输出函数和共享数据段,而是用__declspec(dllexport)来定义输出函数.用/SECTION来定义共享数据段,好了,闲话不说,我在头文件中加入如下数据段:

#pragma data_seg("LJSec")
HWND volatile g_hWnd=NULL;
#pragma data_seg()
#pragma comment(linker,"/section:LJSec,RWS")

立即忍不住要编译,结果出现一个warning: 说是找不到LJSec的共享数据段.Linker失败,晕,我明明定义了,为何找不到呢?

用dumpbin /section:LJSec xxx.dll 找看这个共享段,结果也没有找到.而这个代码在VC6.0中是绝对不会有问题的.

没有办法,打开项目属性,

Configuration Properties
 --- General
       ----Whole Program Optimization

在Whole Program Optimization选项中,默认是Use Link Time Code Generation,是不是这个优化的问题?我将此条选项改成No Whole Program Optimization,再次编译,编译通过!

只要编译通过了,再改回Use Link Time Code Generation,就不会再出现以前的问题了.

 分析原因可能是由于初次编译,使用Link Time 编码生成的时候由于共享段还没有编译成obj文件,编译器找不到而发生错误.

基于STM32的智能盆栽管家系统设计与实现(开题报告2) 本文设计了一种基于STM32的智能盆栽管家系统,旨在解决传统盆栽养护依赖人工、效率低下的问题。系统以STM32为核心,集成土壤湿度、温湿度及光照传感器,通过WiFi模块实现数据上传与远程控制,配备OLED显示屏本地显示,并利用继电器控制水泵与补光灯实现自动化养护。软件方面开发嵌入式程序、安卓APP及云平台,支持数据采集、远程监控和智能决策。相比现有产品,本系统具有成本低、扩展性强等优势,可满足家庭用户对植物精细化管理的需求。研究计划12周完成,包括硬件设计、软件开发、系统测试等环节,最终形成一套完整的智能盆 阅读详情

相关推荐

OpenCLI入门:让任何网站变成你的命令行工具(超详细版)

最有用的工具,往往是最简单的。 opencli就是这样。 它不会帮你写代码,不会帮你做决策,但它能把200+个平台装进你的命令行。 让你用最简单的方式,获取最丰富的数据。

weixin_66295112的博客 2093

动态库so/dll 数据共享

https://www.cnblogs.com/shijingjing07/p/5606930.html http://pnxio.iteye.com/blog/2204451 https://bbs.pediy.com/thread-99734.htm 1.什么是DLL DLL,即动态链接库,是包含若干个函数的库文件,可供其他程序运行时调用。 2.DLL的优缺点 优点:代码重用,

lxz26192的专栏 1291

分析方法—temporal receptive field(TRF)

总结来说,时间感受野其实就是一个 filter!课程中的描述—.(使用时间感受野与刺激进行卷积来描述)时间感受野一般是听觉计算中使用的,在视觉中,有另一种分析叫做空间感受野(spatial receptive fields)。回归权重(Regression weights)是指在回归分析中用于估计自变量与因变量之间关系的权重或系数。回归分析是一种统计方法,用于建立自变量与因变量之间的关联模型,并通过拟合数据来估计模型中的参数。在简单线性回归中,只有一个自变量与一个因变量之间的关系被建模。

m0_51474171的博客 1604

DLL中建立进程共享数据段需要注意的语法问题

默认情况下,所有的数据段都是进程独立的,每个进程有自己的一份。但有时候进程共享一个数据段也是有需要的,为此VC++编译连接器提供了专门的语法,下面是一个典型的例子,建立了一个名为Shared的共享数据段,该数据段里只有一个变量g_hwndOwner。////////////////////////////////////////////// 进程共享区 //////////////////////

smstong的成长轨迹 3934

西门子828D/840DSL数控机床产量数据采集实战:一个C#程序员的踩坑与填坑记录

本文详细记录了C#程序员在西门子828D/840DSL数控机床产量数据采集实战中的经验与教训。从硬件连接到软件配置,再到数据读取与异常处理,文章分享了工业现场编程的特殊挑战和解决方案,特别是针对数控系统的TCP/IP通信、PLC变量地址映射及数据解析等关键技术点。

weixin_42741930的博客 596

SMRATS(一) SMARTS+PPO baseline运行教程

python类方法 class Agent: @classmethod def from_function() python typing 含义 为防止弱类型python出现忘记变量类型的问题,python3.5及之后版本增加了对应的类型提示。 输入和输出类型 函数接受并返回一个字符串,注释像下面这样: def greeting(name: str) -> str: return 'Hello ' + name 常用的typing类型 int,long,float: 整型,

Freshduke的博客 1415

link time code generation

<br />http://msdn.microsoft.com/en-us/magazine/cc301698.aspx<br />在link时刻做的代码优化。<br />平时接触的编译器优化基本是compile time优化,比如inline这样的工作。<br />其限制就是可以做的东西就是在一个编译单元里,一旦调用的一个函数在另外一个编译单元,就只有跳转着一个选择,至于跳转的细节就是在link time来决定了。<br /> <br />link time 优化就是在拿到所有编译单元结果了之后,在全局做

安柏霖的专栏 5289

ABAP 系统里使用 SAP Joule 辅助编程的前提条件

只是说这些大语言模型是针对互联网上能够挖掘到的所有数据进行训练,不像 SAP Joule 那样术业有专攻,仅仅深耕 SAP 技术和业务领域,因此大伙儿对 SAP Joule 的期望值,也远远高于通过大语言模型。SAP Joule 从 ABAP Development Tool 的 Chat 窗口中接收到的对话请求,都会路由到 SAP BTP 上的 AI Foundation.在上述 ABAP 环境中启用 SAP Joule,需要购买额外的 license:8019124.

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 798

Visual C++ 优化概述

作者 Kate Gregory   适用于: Microsoft Visual C++ .NET 2003 Microsoft Visual C++ Toolkit 2003 Microsoft Visual Studio .NET 摘要:演示了 Visual C++ 2003 编译器提供的众多代码优化功能中的几项功能。(8 页打印页) 本文是 Vis

痞子龙3D编程 1730

实时系统vxWorks - 虚拟机环境搭建

概述VxWorks 操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的...

不只会拍照的程序猿 7853

QT使用libssh2库通过密匙实现sftp协议上传文件

qt下使用libssh2通过密匙连接sftp服务器端

小米的修行之路 945

vs 修改配置项使编译出来的文件更小

1,C++一栏下面的Optimization选项下的Whole Program Optimization选择Enable link-time code generation (/GL),该项和Linker栏目下的Optimization选项下的Link Time Code Generation共同使用,选择Use Link Time Code Generation (/ltcg),意思就是打破常规

sam的学习家园 4859

使用强化学习快速让AI学会玩贪食蛇游戏(轻量级二十分钟训练+代码)

如何让AI玩会贪食蛇,甚至比你厉害概述构建问题(强化学习求解的一般步骤)环境动作定义状态定义奖励设计训练奖励值收敛图效果代码 概述 所用技术:强化学习(Deep Reinforcement Learning),属于一种无监督学习,利用奖励rewardrewardreward教会智能体AgentAgentAgent在合适的场景做合适的决策。 采用算法:试过两种算法D3QN和离散版本的PPO算法,最终采用离散版本PPO算法+GAE(PPO是我用过的性能最好的算法之一) 编程语言与深度学习框架:Python3.

ZYunfei的博客 2万+

VS2010_DLL_共享数据段

1、问题:写了一个DLL,自己一直测试不成功(程序A设置了 数值之后,程序B 始终读不到 读出来的都是初始化时的数值...)   具体过程:     (1)、DLL当初没想要用 共享数据段,测试使用 一直都是OK的     (2)、ExeA 和 ExeB 都会使用这个DLL     (3)、想要简单的 进程通信功能,于是添加了共享数据段。     (4)、我测试时是这样:ExeA(存...

weixin_30443895的博客 322

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Link Time Code Generation

强大的Link Time Code Generation (2008-10-15 16:10:04) 转载▼ 标签: 杂谈 分类:MSN搬家 这两天正在研究Link Time CodeGeneration(以下称LTCG),不看不知道,看了很激动。这个功能对于广大的程序员,特别是为了提高程序的性能而苦苦烦恼的程序员来说,简直可以说是拨开云雾见太阳

lcjwxd的专栏 1360

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

VS2015未能正确加载解决方案中的一个或多个项目

像这样的错误就不应该出现,不要怀疑你的VS坏掉了!!也不要去别的电脑拷贝什么乱七八糟的文件!!! 问题就是你打开的项目中xxx.vcxproj文件中内容,VS找不到了!! 你需要做的是把这些内容找到,该删得删,该加环境变量的加环境变量。 最典型的一个例子就是在darknet的配置中有很多人问我出现了这个错误。 用notepad++打开darknet.vcxproj文件,基本上问题都出现...

凌空的桨 1万+

VS depends工具,查看dll

<br />需要使用VC自带的Depends软件,在VS2005中其路径为:D:/Program Files/Microsoft Visual Studio 8/Common7/Tools/Bin下,双击Depends.exe然后打开你需要查看的.exe文件即可。 针对我的代码,出现了以下界面:<br /> 还要有以下几个注意事项: & ?* ^ 1)所编的软件所需的Dll文件,可以得到相应的Dll路径、版本、属性等[ 2)窗口分四部分: 左上角是Dll信息窗口,显示你程序所需的Dll模块; 右边第一个窗口

castle911的专栏 6881

VS2017 共享节问题

VS2017 共享节问题 需要dll间共享数据,看了http://www.cnblogs.com/CBDoctor/archive/2013/01/26/2878201.html,尝试了下,使用def文件添加共享节 SECTION myseg READ WRITE SHARED 发现VS2017编译出来没有共享节,查看编译警告: 1&gt;Source.def(3): warning LNK40...

at287043429的博客 603

vc6.0或者vs2008 MFC程序采用console输出调试信息的方法

在 Project | Setting中,选项 Post-builder step 里新建command,  输入:     editbin /SUBSYSTEM:CONSOLE $(OUTDIR)/filename.exe    (其中 filename 为可执行文件名)         则可以使用 printf 或者 std::cout 在控制台中输出了。例如你的可执行文件名为

tianya0609的专栏 2894

CStdioFile ReadString 在unicode环境下汉字显示的乱码的问题。

txt文本是unicode编码格式,但ReadString后,显示汉字是乱码的。以下是解决办法。  CString CSetupForm::GetTxtfile(CString txtdir)  //参数为文件路径 {   CStdioFile file; if(file.Open(txtdir,CFile::modeNoTruncate | CFile::modeRead |

4992

正确获取硬盘序列号源码.

         GetVolumeInformation 只能用来获取卷序列号,这就意味着一旦用户重新格式化,或者重新分区,那序列号又将改变.以下正确获取硬盘序列号的源码,我已将字符串处理函数修正为安全版本.此程序在VS2005中编译通过.输出样板:Trying to read the drive IDs using physical access with admin rights

4753

VS2005的VC编程无法将GIF文件加入到资源文件的解决办法.

在VS2005的VC编程中,如果想加入一个GIF文件到资源文件,就会出现一个not a invalid xx gif 的错误提示,而且提示中还有个乱码字符,总之无论如何都无法将GIF文件加入到资源文件中,很是郁闷.声明: 笔者使用的是vs2005英文版,vs 2003也有此问题.在vs 2005中文版中笔者还不知道有没有此问题.解决办法是用文本文件工具打开资源文件,按如下方式修改:在/

2922

自已做了个hpgl格式文件plt查看器

2842

vs2010 :warning MSB8004, stdafx.h存在,但在子目录里包含提示找不到。

Output Directory or intermediate 目录未以斜杠结尾 stdafx.h在子目录程序文件中包含提示找不到,在配置 C++  General -Additional Include Directories中加入 ./;

2510

转:关键字Const和Volatile的使用

作者:ant 发表于 2005-11-21 13:23:00 Const 7.关键字const有什么含意?我只要一听到被面试者说:“const意味着常数”,我就知道我正在和一个业余者打交道。去年Dan Saks已经在他的文章里完全概括了const的所有用法,因此ESP(译者:Embedded Systems Programming)的每一位读者应该非常熟悉const能做什么和不能做什么.如果你从没

2410
上一篇: VS2005的VC编程无法将GIF文件加入到资源文件的解决办法.
下一篇: 做软件如同做人?
denjackson
博客等级 码龄22年 51粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值