C# 写的dll 注入到 别的线程里面 后 怎么调用 dll中的方法

C# 写的dll 注入到 别的线程里面 后 怎么调用 dll中的方法
1989晨风 你在线程里面 添加个引用我看看 是怎么添加的 c#调用dll 添加引用我知道。我问的是 把c#写的dll 注入到别的进程里面 然后调用c#写的这个dll中的 方法

我的意思是现在我把c#写的一个dll 注入到 记事本的进程里面 然后怎么让这个dll里面的方法执行,网上说因为托管的原因 不能直接调用 有没有方法可以调用呢?

C#调用需要把DLL库的接口封送。

例如:
本示例显示如何使用 DllImport 属性通过调用 msvcrt.dll 中的 puts 输出消息。

// PInvokeTest.csusing System;
using System.Runtime.InteropServices;
class PlatformInvokeTest
{
[DllImport("msvcrt.dll")]
public static extern int puts(string c);
[DllImport("msvcrt.dll")]
internal static extern int _flushall();
public static void Main()
{
puts("Test");
_flushall();
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-08-13
有一个 .involk()方法,不知你用过吗。是c#多线程安全的措施。推荐本书吧,《c#编程手册》,讲threading那章
第2个回答  2010-08-08
直接引用不行吗?
第3个回答  2010-08-09
添加引用,然后再调用

C# 写的dll 注入到 别的线程里面 后 怎么调用 dll中的方法
C#调用需要把DLL库的接口封送。例如:本示例显示如何使用 DllImport 属性通过调用 msvcrt.dll 中的 puts 输出消息。\/\/ PInvokeTest.csusing System;using System.Runtime.InteropServices;class PlatformInvokeTest { [DllImport("msvcrt.dll")]public static extern int puts(string c);[DllImport("msvcrt....

怎样在MFC中调用C#编写的DLL
回答:2、展开“配置属性”旁边的节点并选择“常规”。在右侧窗格中的“项目默认值”下,将“公共语言运行库支持”设置为“公共语言运行库支持 (\/clr)”。3、在相同的窗格中,确保将“MFC 的使用”设置为“在共享 DLL 中使用 MFC”。 4、在“配置属性”下,展开“C\/C++”旁边的节点并选择“常规...

C#中 如何在一个类中 调用另一个类中的数据?
f2.show();这样在form2里面的lb就是form1的listbox1了 因为类是引用类型所以可以这样,,还有别的窗体直接传递的方法,,我就不说了这个比较简单也常用

C#中如何动态加载和卸载DLL
你提到,当卸载域的时候“另一个线程还在执行这个dll里面的方法”,那么这个方法的调用方应该在计划卸载的域之外,这样:通过反射方法运行的代码在执行的域中(即主程序的域),这种情况下在执行域中同样加载了目标程序集(因此文件被占用),与要卸载的域无关。如果目标程序集是可执行程序,则可以令新建...

C#2005调试出现“没有可用于当前位置的源代码”
另一可能原因是:试图调试托管代码的转储文件。Visual Studio 仅支持使用 SOS 工具,在“即时”窗口中对托管的小型转储进行调试。有关信息,请参见如何:使用 SOS 和 SOS 调试扩展 (SOS.dll)。在解决方案属性页中,可以更改调试器查找源文件的目录,并通知调试器忽略选定的源文件。参考资料:http:\/\/ms...

c#远程注入是什么意思?能干什么?
一般用于木马程序隐藏自身EXE文件,或是要跟踪某程序的运行情况才会用到。如灰鸽子这类的程序,运行之后,你不会看到XXX.EXE这样的进程,其原理便是运用了远程线程注入,他有两个DLL类库文件被注入到了其他程序中,所以仍能继续工作,杀毒软件也会将自身的DLL注入到EXPLORER中,便于HOOK系统函数的调用情况...

求助 关于C#多线程调用c++dll
百度“C# 调用DLL”。调用DLL和多线程无关,只要DLL支持多线程,就可以放心的调用。

C#多线程同时调用dll中的一个串口程序,有没有锁一类的东西避免冲突?
串口是一个互斥资源,同时只能被一个线程打开。你可以使用一个互斥锁保证两个线程同时只会有一个函数调用串口。

c#中,怎么将一个类里面的所有方法一次性添加到线程池的队列中
你可以做个数组把方法放进去,然后用循环调用即可 void m1(object obj) { } void m2(object obj) { } void Main() { var delegateArray = new WaitCallback[] { m1, m2 };\/\/多个方法只要放到这数组里即可 foreach (var item in delegateArray) { Thread...

为什么C#注入器无法注入DLL,而ProcessHacker完美注入
C# 是要线程安全 托管的CLR 上执行的 操作其他线程是不可能的。但是你可以用c# 编译时候开启unsafe开关 并且在unsafe 代码块使用指针 来达到干扰其他线程的操作。

相似回答