下面简单的例子,在CE5上运行出现 无法找到 PInvoke DLL "play.dll" 的错误,CE6下正常,高手给指点一下,多谢!
//stdafx.h
这个文件是自动生成的,就不列出来了
//play.h
bool Play(WCHAR * FileName);
//play.cpp
#include "stdafx.h"
#include "play.h"
BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
//连接库初始化
return TRUE;
}
bool Play(WCHAR * FileName)
{
return false;
}
//play.def
LIBRARY "Play"
EXPORTS
Play
编译后生成动态连接库:Play.dll
在.net vb中调用:
<DllImport("play.dll", EntryPoint:="Play")> _
Public Shared Function Play(ByVal FileName As String) As Boolean
End Function
private sub abc()
play("c:\abc.wav")
end sub
程序均在VS2008中生成。
在CE5中执行到play("c:\abc.wav")时出现 无法找到 PInvoke DLL "play.dll" 的错误,在CE6能正常运行。原CE5中没有安装NET Compact Framework 2.0,运行时没有反应,后在C:\Program Files\Microsoft.NET\SDK\CompactFramework\v2.0\WindowsCE\wce500\armv4i目录中找到NETCFv2.wce5.armv4i.cab安装后可以正常运行,但会发生无法找到 PInvoke DLL "play.dll" 的错误。问题在那里呢?请帮帮忙!

确定文件和exe在同一个目录下?
确定文件和exe在同一个目录下?在同一个目录中