当前位置:编程学习 > C#/ASP.NET >>

如何调用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#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,