我正在搜索stackoverflow问题,但没有人回答我的问题。我有一个游戏引擎,我想在运行时加载玩家AI(用c ++编写)。
function detectCollision(){
alert(document.getElementById("obstacle").style.left)
while(true){
var temp = getObstaclePosition();
var temp2 = getPlanePosition();
if(temp[0] <= temp2[0]+500){
document.getElementsByClassName("plane")[0].style.display = "none";
break;
}
}
}
答案 0 :(得分:3)
由于您提到已编译的DLL,因此您需要查看LoadLibrary
和GetProcAddress
。这就是你如何运行DLL的运行时加载并从中提取特定的函数。
可以在Using Run-Time Dynamic Linking下找到示例。
答案 1 :(得分:3)
假设纯Windows平台,因为没有指定 -
如果要注入DLL,首先使用LoadLibrary函数获取它的句柄,如下所示:
HINSTANCE handleLib;
handleLib = LoadLibrary(TEXT("YourDLL.dll"));
然后,您可以获得指向lib中特定函数的函数指针。像这样:
FUNC_PTR func;
func = (FUNC_PTR) GetProcAddress(handleLib, "yourFunc");
然后你可以这样调用这个函数:
(func) (L"TESTSTRING HERE");
完成后,调用FreeLibrary(libhandle)
如何将导出的函数声明为VS,例如这样(这需要在您预编译的DLL中标记您的函数:
__declspec(dllexport) int __cdecl yourFunc(LPWSTR someString)
{
//Code here...
}