请教怎么实现将托管代码(如C#)生成的 DLL 库变成标准非托管VC++可调用的

请问如何实现将托管代码(如C#)生成的 DLL 库变成标准非托管VC++可调用的
如题。非常抱歉,我是新人,以前从未接触过C#,但是又找不到VC++的版块,只好到这里来求助。

事情是这样的。我最近在写一个VC++的Console窗口程序,除了其既定的任务外,它还要实时监控给定目录的文件操作。因为这是一个Console窗口程序,实践证明不可以在代码中采用 while(true){} 这样的循环检测方案,否则会导致主程序无法继续执行后续代码。后来查到MSDN上有个C#的托管样例:FileSystemWatcher,采用的是系统消息事件触发,于是想试着用它来生成DLL,再动态加载,采用线程并发在后台运行。但我是个新手,程序也只是在规划中,我目前能想到下列两个问题:

1. 这个托管代码生成的DLL库无法直接被非托管的VC++/C++直接调用(LoadLibrary / GetProcAddress),但如何转换成非托管?如果无法转换,有什么方法能实现非托管代码可调用?注:现有的非托管代码不能采用 /clr 参数编译!!即:现有VC++只能是纯非托管代码!

2. 动态加载的(线程)究竟能不能在被Console程序调用的情况下实现后台?一有文件读/写就触发事件,直到Console主程序终止?

先谢谢各位高人及前辈们!
------解决思路----------------------
.net的组件可以发布为 COM 组件,并且支持事件。

你可以可以通过跨进程通讯,例如通过udp、共享内存、管道、msmq等等通讯方式来让两个已经启动的进程相互协同。
------解决思路----------------------
另外,”现有的非托管代码不能采用 /clr 参数编译“,但是你也完全可以另外再做一个”可以小的、轻量级的采用 /clr 参数编译“的c++ DLL来做你的尝试。