如何调用DLL
我用C++写了一个大型的程序,是用来生成烟雾的程序。在生成的过程中使用了opengl等,封装成dll成功了,但是在C#中调用的过程中说初始化失败。主函数的程序代码如下:int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
MSG msg;
bool bDone = false;
// 提示用户选择运行模式
if(MessageBox(NULL,"Would You Like To Run In Fullscreen Mode?","Start FullScreen?",MB_YESNO|MB_ICONQUESTION)==IDNO)
{
bFullSCR=false;// 窗口模式
}
// 创建OpenGL窗口
if(!CreateGLWindow("Rick's OpenGL Particle Demo Version 0.9 alpha",640,480,16,bFullSCR))
{
MessageBox(NULL,"Create Window Failed.","ERROR", MB_OK | MB_ICONEXCLAMATION);
return 0; // 失败退出
}
while(!bDone)
{
if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
if(msg.message == WM_QUIT)
{
bDone = true;
}
else
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
else
{
if(bActive)
{
static float time = 0.0f;
//if(g_uSceneID>1&&g_uSceneID<10)
//{
ShowFPS();
//}
for(unsigned int i=0;i<g_uPSysNumber;i++)
(pParticleSystem+i)->Update(time);
DrawGLScene();
SwapBuffers(hDC);
time +=0.01f;
}
}
}
return(msg.wParam);
}
--------------------编程问答-------------------- WinMain 是C++的入口函数,一个程序怎么能有两个入口函数?
建议封装里面的方法,不要带上WinMain入口点函数。然后在调用 --------------------编程问答-------------------- regsvr32 注册你的c++编译的dll后然后NET项目中右键参照引用此dll即可 --------------------编程问答-------------------- 如果还是成功不了。那就是你C++代码里面写的有问题。 --------------------编程问答-------------------- 既然是winmain,就编译为exe,让C#程序直接调用执行吧。
补充:.NET技术 , C#