日期:2014-05-19  浏览次数:20569 次

ASP.NET调用DLL
WIN窗体调用没有问题
所有DLL全部放到BIN底下了,并且asp.net用户权限给成了管理员权限
DLL是用VC6.0编写的

1> DLL中能不能使用回调函数,比如Enumwidows,并找到指定的进程
2> DLL与应用程序共享内存的问题

欢迎帮顶,谢谢

------解决方案--------------------
沙发先
------解决方案--------------------
up
------解决方案--------------------
用DLLImport
------解决方案--------------------
帮顶
------解决方案--------------------
1
------解决方案--------------------

------解决方案--------------------
UP
------解决方案--------------------
using System.InteropServices;

DllImport();
------解决方案--------------------
DLLImport
------解决方案--------------------
不知道,学习中,帮顶!
------解决方案--------------------
学习了!谢谢lz
------解决方案--------------------
学习了!顶下!
------解决方案--------------------
1.你试一下不就知道了 理论上因该可以 不过它找到的是它的载体的用户下的东西(例如asp.net账户),所以找到的窗体和你现有桌面的窗体并不会一致,就算设置成admin启动,也不会一致,服务会开启一个shell因此似乎EnumWindow没什么意义
2.不知道
------解决方案--------------------
UP 学习
------解决方案--------------------
不清楚
------解决方案--------------------
学习
------解决方案--------------------
mark

------解决方案--------------------
VC的DLL用的时候要先注册
------解决方案--------------------
用下面写的动态加载非托管Dll的方法,我在调用C++builder写的Dll时,没有问题的。
#region 枚举定义
/// <summary>
/// 参数传递方式枚举 ,ByValue 表示值传递 ,ByRef 表示址传递
/// </summary>
public enum ModePass
{

ByValue = 0x0001,

ByRef = 0x0002

}
#endregion

#region win32 API动态加载DLL使用

/// <summary>
/// 原型是 :HMODULE LoadLibrary(LPCTSTR lpFileName);
/// </summary>
/// <param name= "as_fileName "> DLL 文件名 </param>
/// <returns> 函数库模块的句柄 </returns>
///
[DllImport( "kernel32.dll ")]
static extern IntPtr LoadLibrary(string as_fileName);

[DllImport( "kernel32.dll ", SetLastError = true)]
private static extern IntPtr LoadLibraryEx(string as_fileName, IntPtr aip_file, uint aui_flags);

/// <summary>
/// 原型是 : FARPROC GetProcAddress(HMODULE hModule, LPCWSTR lpProcName);
/// </summary>
/// <param name= "hModule "> 包含需调用函数的函数库模块的句柄 </param>
/// <param name= "lpProcName "> 调用函数的名称 </param>
/// <returns> 函数指针 </returns>
[DllImport( "kernel32.dll ")]
static extern IntPtr GetProcAddress(IntPtr aip_Module, string as_procName);