控制-C++ EXE与DLL共享数据问题

问题描述

C++ EXE与DLL共享数据问题
其实整个问题是这样的:我在EXE里有一段程序,控制电机运动,但在中间的某一步里,需要跳到DLL里继续运动,然后在跳转回来,exe根据dll的数据变化再进行接下来的动作。
之前是用定时器和导出函数控制,但是不安全会出现撞机。

跪求大神提供更好的解决方法,小女子不胜感激!

解决方案

通过传入伟出参数应该可以实现

解决方案二:
dll导出函数返回值可以传递给exe,exe通过参数传数据给dll

解决方案三:
同一个进程很简单,共享参数或者指针就可以了。

解决方案四:
使用函数指针,回调函数,windows消息响应机制就是采用这种方法。

解决方案五:
可以用回调函数去实现。

解决方案六:
dll里面执行任务的时候开一个线程,异步的执行就不会有这个问题了吧。

时间: 2025-01-20 12:54:45

控制-C++ EXE与DLL共享数据问题的相关文章

利用共享数据段实现限制EXE单实例运行

确保你的程序只有一个进程实例在运行有很多种方法,利用共享数据段的方法最简单方便. 一个EXE文件是有不同的段(Section)组成的,其中有若干代码段和若干数据段.在默认情况 下,操作系统为了确保每个进程实例在安全环境中运行会为每个进程实例创建自己的数据段的 拷贝,这样多个进程实例就不会因为一个实例修改了数据段的内容而影响到另外的进程实例. 但是我们也可以为EXE创建共享数据段,这样多个进程实例就可以共享这个数据段而不会拥有自 己的拷贝. 因此我们可以在共享数据段里存放一个变量来表示目前进程实例

使用LIBCTINY.LIB为EXE和DLL文件减肥

在 October 1996 column 我讨论过一个有关可执行文件大小的问题.那个时候,一个简单的 hello world 程序大约有32KB.在 Visual C++ 编译器更新了两个版本后,文件尺寸问题稍微得到了改善,同样的程序使用 Visual C++ 6.0 编译器现在只有28KB.在那时的专栏里,我使用了一个小的运行库来创建极小的可执行程序.虽然有不少局限,但是对决大多数的程序来说,它们运转得很好.这些局限已经存在相当长的一段时间了,我决心修正它们.同时也提供一个学习如何进一步减少

App与Extensions间通信共享数据

  最近玩了玩Watch开发,而目前Watch的主要逻辑处理都是放在WatchKit Extension.真正的Host App,也就是WatchKit App只是用来在界面上显示数据的.于是实践了下containing app与app extension之间的通信和数据共享. App Groups & Framework 这两样兵器大家都很熟悉.想要共享数据就需要开启App Groups,给group起一个风骚的名字,这样无论是NSUserDefaults还是NSFileManager都能通过

C#中用代码控制命令来备份mysql的数据,可是备份不了,怎么回事??

问题描述 C#中用代码控制命令来备份mysql的数据,可是备份不了,怎么回事?? 方法1:Process.Start(""cmd.exe""/c mysqldump -hlocalhost -P3306 -uroot –p12111 samp_db1 > E:cs.sql"");方法2:ProcessStartInfo psi = new ProcessStartInfo();psi.FileName = ""cmd.e

在 Node.js 和 C++ 之间使用 Buffer 共享数据

本文讲的是在 Node.js 和 C++ 之间使用 Buffer 共享数据, 使用 Node.js 开发的一个好处是简直能够在 JavaScript 和 原生 C++ 代码之间无缝切换 - 这要得益于 V8 的扩展 API.从 JavaScript 进入 C++ 的能力有时由处理速度驱动,但更多的情况是我们已经有 C++ 代码,而我们想要直接用 JavaScript 调用. 我们可以用(至少)两轴对不同用例的扩展进行分类 - (1)C++ 代码的运行时间,(2)C++ 和 JavaScript

Python multiprocessing.Manager介绍和实例(进程间共享数据)_python

Python中进程间共享数据,处理基本的queue,pipe和value+array外,还提供了更高层次的封装.使用multiprocessing.Manager可以简单地使用这些高级接口. Manager()返回的manager对象控制了一个server进程,此进程包含的python对象可以被其他的进程通过proxies来访问.从而达到多进程间数据通信且安全. Manager支持的类型有list,dict,Namespace,Lock,RLock,Semaphore,BoundedSemaph

.exe和.dll 文件如何存入SQL数据库image 类型

问题描述 我存jpg,ico,rar...都可以存入,而且都可以区分开0xFFD8FFE000104A46494600010101000000000000FFDB00430006040506050406060506070706080A100A0A09090A140E0F0C1017141818171416161A1D251F1A1B31C1616202C20232627292A29191F2D302D283025282928FFDB0043010707070A080A1300A0A13281A1

java基础多线程之共享数据

java基础巩固笔记5-多线程之共享数据 线程范围内共享数据 ThreadLocal类 多线程访问共享数据 几种方式 本文主要总结线程共享数据的相关知识,主要包括两方面:一是某个线程内如何共享数据,保证各个线程的数据不交叉:一是多个线程间如何共享数据,保证数据的一致性. 线程范围内共享数据 自己实现的话,是定义一个Map,线程为键,数据为值,表中的每一项即是为每个线程准备的数据,这样在一个线程中数据是一致的. 例子 package com.iot.thread; import java.util

JScript教程:使用JScript创建.exe或.dll文件

文章简介:JScript 是由微软开发的活动脚本语言,基于 ECMAScript 规范实现.Internet Explorer 中的 JavaScript,实际上是指 JScript.JScript 已被 Windows Script Host(WSH)支持.JScript 最新的版本(JScript.NET)基于尚未定稿的 ECMAScript 4.0 ,并且可以在.Net环境下编 什么是 JScript? JScript 是由微软开发的活动脚本语言,基于 ECMAScript 规范实现.In