一个访问冲突(Access Violation)(50分)

U

uuid

Unregistered / Unconfirmed
GUEST, unregistred user!
将如下代码:
bool PLAYER_setFileEndMessage(int handle, HWND wnd,int msg)
void CAsfPlayerTestDlg::OnFileendbutton()
{
PLAYER_setFileEndMessage(playerId1,m_hWnd,WM_QUIT);
}
转到Delphi:
function PLAYER_setFileEndMessage(handle:Integer; wnd:HWND; msg:Integer): boolean;
procedure TasfPlayerFrm.btnEndMsgClick(Sender: TObject);
begin
PLAYER_setFileEndMessage(playerId1, asfPlayerFrm.Handle, WM_QUIT);
end;
执行时出现异常:Access violation at address 00000000. Read of address 00000000.
并且可知函数PLAYER_setFileEndMessage执行失败(该函数从dll中导出)。
而原例执行时无异常。

请指点迷津
 
你是怎么从Dll中导出的?看样子根本没找到这个函数 。
 
function PLAYER_setFileEndMessage (handle:Integer; wnd:HWND; msg:Integer): boolean; stdcall;
PLAYER_DllHandle := LoadLibrary('player.dll');
PLAYER_setFileEndMessage := GetProcAddress(PLAYER_DllHandle, 'PLAYER_setFileEndMessage');
怎么才能知道是否找到了这个函数。
 
用Assigned(PLAYER_setFileEndMessage)发现确实没有找到这个函数,
但是PLAYER_setFileEndMessage是和许多其他函数以相同的方式一起导出的,
而其他函数都正常。
这会是什么原因呢?
 
是不是大小写没注意区分
 
接受答案了.
 

Similar threads

顶部