求助:c++程序封装成DLL,使用c#调用它的main函数
这是需要封装的函数:extern"C"__declspec(dllexport)int_tmain(intargc,char**argv)//{glutInit(&arg...
这是需要封装的函数:
extern"C"__declspec(dllexport) int _tmain(int argc, char** argv) //
{
glutInit(&argc, argv); //对GLUT进行初始化
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); //单缓冲窗口、RGBA颜色模式
glutInitWindowPosition(100, 100); //窗口左上角屏幕位置
glutInitWindowSize(400, 400); //窗口大小
glutCreateWindow("helloOpenGL"); //创建了一个支持OpenGL渲染环境的窗口
init();
glutDisplayFunc(Display); //显示回调函数
glutMainLoop(); //运行程序,显示创建窗口
return 0;
}
c#中的调用函数:
[DllImport("selectsquare.dll", EntryPoint = "_tmain", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
public static extern int _tmain();
private void ButtonOnClick(object sender, RoutedEventArgs e)
{
main();
}
主要问题:1、不知道怎么处理 int _tmain(int argc, char** argv) 中的参数?
2、如果将_tmain(int argc, char** argv)中的参数以及 glutInit(&argc, argv)去掉,并改为int main(),程序可以实现,但写为_tmain()就不可以,想知道是为什么?请指点! 展开
extern"C"__declspec(dllexport) int _tmain(int argc, char** argv) //
{
glutInit(&argc, argv); //对GLUT进行初始化
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); //单缓冲窗口、RGBA颜色模式
glutInitWindowPosition(100, 100); //窗口左上角屏幕位置
glutInitWindowSize(400, 400); //窗口大小
glutCreateWindow("helloOpenGL"); //创建了一个支持OpenGL渲染环境的窗口
init();
glutDisplayFunc(Display); //显示回调函数
glutMainLoop(); //运行程序,显示创建窗口
return 0;
}
c#中的调用函数:
[DllImport("selectsquare.dll", EntryPoint = "_tmain", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
public static extern int _tmain();
private void ButtonOnClick(object sender, RoutedEventArgs e)
{
main();
}
主要问题:1、不知道怎么处理 int _tmain(int argc, char** argv) 中的参数?
2、如果将_tmain(int argc, char** argv)中的参数以及 glutInit(&argc, argv)去掉,并改为int main(),程序可以实现,但写为_tmain()就不可以,想知道是为什么?请指点! 展开
2个回答
展开全部
如果只是调用main函数,何不把c++做成exe,c#直接用命令行参数调用?
更多追问追答
追问
程序还需要调用别的函数,贴出来的只是个示例,主要解决不了int _tmain(int argc, char** argv) 中的参数问题,因为需要使用OpenGL初始化函数glutInit(&argc, argv);
还有就是为什么int main()可以,但int _tmain()就会出现找不到入口点?
追答
那你就不要用main来举例好吧。
2017-10-05
展开全部
指针 参数使用intptr处理
~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询