想实现的功能是这样子的:
程序a.exe的调用b.dll的一个函数,我把a。exe中的一个列表地址作用这个导出函数的参数,这样b.dll就能够使用这个列表对象。现在a和b中都在操作这个列表,a中有可能删除列表中的某一项,不知道怎么互斥。本来想把TRTLCriticalSection传过去,结果不行。
望高手指点下。
程序a.exe的调用b.dll的一个函数,我把a。exe中的一个列表地址作用这个导出函数的参数,这样b.dll就能够使用这个列表对象。现在a和b中都在操作这个列表,a中有可能删除列表中的某一项,不知道怎么互斥。本来想把TRTLCriticalSection传过去,结果不行。
望高手指点下。
还有就是:dll和exe中都有窗体,并且窗体的事件响应中都涉及到操作列表,不过这看似同时的操作,其实也是分时的,某个事件响应函数没完事,绝对不会响应另外一个事件的。
如果你的程序是多线程的,那才涉及的同步问题。在单线程中,像你说的,a在删除列表中的项,在没有完成删除之前,是不会有其他的函数能够操作这个列表的。不论操作列表的函数是在dll中还是exe中
如果是这样,在dll中引出一个回调函数就可以了,a删除了列表之后,调用一下回调函数。
如果exe和dll都有窗体,那发消息通知也行