[DllImport("user32.dll", EntryPoint="SetCursorPos")] public static extern int SetCursorPos ( int x, int y );調用時 SetCursorPos(Screen.PrimaryScreen.WorkingArea.Width / 2 - 10,Screen.PrimaryScreen.WorkingArea.Height / 2 + 10);
to 打只说DllImport的人的PP,DllImport传入的DLL名只能是常量,无法根据配置文件来传DLL文件名。至于CodeDOM和Emit有点重了。我准备用VC写个DLL,在这个DLL里动态去加载原来在.NET程序中需要加载的DLL。有没有其他方式呢?其实dll文件你是知道的,每个dll文件中的函数你也是知道的,只不过是想程序调用的时候,根据环境不同而去选择某个dll中的某个函数,那么只要环境确定了,那么相应的dll以及其函数也是确定的。 那么dllimport是可以实现你想要的功能,只不过要把每个dll中的所有函数都要声明出来,这样你就可以根据不同环境来选择执行不同dll的函数。虽说这样不像vc调用那么简洁,尤其是在调用不同dll中实现同一种方法的时候。
public static extern int SetCursorPos (
int x,
int y
);調用時
SetCursorPos(Screen.PrimaryScreen.WorkingArea.Width / 2 - 10,Screen.PrimaryScreen.WorkingArea.Height / 2 + 10);
那么dllimport是可以实现你想要的功能,只不过要把每个dll中的所有函数都要声明出来,这样你就可以根据不同环境来选择执行不同dll的函数。虽说这样不像vc调用那么简洁,尤其是在调用不同dll中实现同一种方法的时候。
http://www.aspxboy.com/private/showthread.asp?threadid=369