首先用C#写一个托管的dll,然后再用vc.net写一个非托管dll,并在其中调用托管dll,最后将这个非托管的dll注入到其它进程中去.
本来也没啥复杂的,在我自己的机子上是没有问题的,而到了其它机子上就不行了(其它机子安装了.net3.5,与本机一样).最后跟踪下来的结果,感觉像是loadlibrary没有正常调用非托管dll,因为在dllmain中输出不出任何东西...困惑中...
望高手指教!

解决方案 »

  1.   

    我自认为不是代码的问题,因为在我的机子上是没有任何问题的,难不成是国为我的机子上有vc.net开发环境?
    还有,我用其它注入软件直接注入也不是不行的,但注入其它dll都是没有问题的.To CsToD:
    此文我已经在之前阅读过了,现在的思路大体和它类似,谢谢!
    To Knight94:
    我是用vc.net调用托管代码的,应该是不需要注册托管dll
    To cnzdgs:
    感觉不像是被其它安全软件屏幕了,因为我注入其它dll是没有问题的,只是这个"桥接"dll 有问题.
      

  2.   

    to 我是用vc.net调用托管代码的,应该是不需要注册托管dll 你好像是非托管调用托管的,对吧
    如果是的话,需要把托管的dll转成com,然后注册后才能被调用。
      

  3.   

    非托管调用托管的,需要把托管的dll转成com,然后注册。
      

  4.   

    已经搞定,感谢各位的热情帮助.问题出在,vc.net在调用托管代码时运行不仅仅需要.net framework还需要vc的主要类库. 通过查看系统日志,发现问题为sidebyside and errorid 58. 最后安装了vcredist_x86.exe 就可以了.