求助: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()就不可以,想知道是为什么?请指点!
展开
 我来答
阳光的雷咩咩
2014-11-28 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7636万
展开全部
如果只是调用main函数,何不把c++做成exe,c#直接用命令行参数调用?
更多追问追答
追问
程序还需要调用别的函数,贴出来的只是个示例,主要解决不了int _tmain(int argc, char** argv) 中的参数问题,因为需要使用OpenGL初始化函数glutInit(&argc, argv); 
还有就是为什么int main()可以,但int _tmain()就会出现找不到入口点?
追答
那你就不要用main来举例好吧。
匿名用户
2017-10-05
展开全部
指针 参数使用intptr处理

~~~~~~~~~~~~~~~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式