Wince平台 c#语言 关于调用DLL的问题(该DLL为非托管)
c#源代码如下:
static class Program
{
[DllImport("Coredll.dll")] //加载,释放,链接库,获得函数地址函数
static extern IntPtr LoadLibrary(string lpFileName);
[DllImport("Coredll.dll")]
static extern IntPtr GetProcAddress(IntPtr hModule, string lpProcName);
[DllImport("Coredll.dll", EntryPoint = "FreeLibrary", SetLastError = true)]
static extern bool FreeLibrary(IntPtr hModule);
[MTAThread]
static void Main()
{
IntPtr hModule = LoadLibrary("
omap_shell.dll");
IntPtr farProc = GetProcAddress(hModule, "MemoryMap");
Application.Run(new Form1());
}
}
问题:现在想要使用omap_shell.dll中的几个函数,在调式的时候,hModule,farProc的地址都可以获得,而且omap_shell.dll中的方法也可以调用,但是一旦运行的时候就会报错(该函数LoadLibrary报错)无法加载Coredll.dll,请教大家,到底是怎么回事呢?非常感谢诸位!
(Coredll.dll和omap_shell.dll已经放在了bin\debug目录下,在Wince的\windows\目录里也有了)
Dll?
C#
WinCE
无法加载
------解决方案--------------------Coredll.dll是wince或mobile自带的
看看这个帖子对你有没有帮助
http://bbs.csdn.net/topics/250002731
------解决方案--------------------调用dll出问题的时候我听别人说用depends工具找下缺少的依赖,后来解决了
不知道能帮到你不,可以下个depends工具查下
------解决方案--------------------注意一下测c++和c#类型是否一致,调用c++最麻烦的就是参数类型 或者返回值类型,类型要一致
------解决方案--------------------难道楼主调试和运行的环境不一样,或者有什么配置不一样,要不楼主检查一下调试时是不是有什么特殊配置
------解决方案--------------------再次 考虑是不是 线程引发的冲突···