读书人

ASP.NET调用DLL,该怎么处理

发布时间: 2012-01-19 20:57:58 作者: rapoo

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);



/// <summary>
/// 原型是 : BOOL FreeLibrary(HMODULE hModule);
/// </summary>
/// <param name= "hModule "> 需释放的函数库模块的句柄 </param>
/// <returns> 是否已释放指定的 Dll </returns>
[DllImport( "kernel32 ", EntryPoint = "FreeLibrary ", SetLastError = true)]
static extern bool FreeLibrary(IntPtr aip_module);

/// <summary>
/// Loadlibrary 返回的函数库模块的句柄
/// </summary>
private static IntPtr iip_module = IntPtr.Zero;

/// <summary>
/// GetProcAddress 返回的函数指针
/// </summary>
private static IntPtr iip_farProcess = IntPtr.Zero;
#endregion
[解决办法]
ding

[解决办法]

[解决办法]
1: 可以使用。
2:使用IntPtr和GCHandle。

读书人网 >asp.net

热点推荐