我有一个 c++ dll 和 c# 应用程序。在 C# 应用程序中,我从 dll 调用函数。具有简单的功能,例如:
extern "C"
{
__declspec(dllexport) void HelloFromDll()
{
MessageBox(NULL, _T("Hello from DLL"), _T("Hello from DLL"), NULL);
}
}
一切正常。当我像这样使用带有 glut 的函数时:
extern "C"
{
__declspec(dllexport) int InitGlut()
{
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
glutInitWindowPosition(100,100);
glutInitWindowSize(320,320);
glutCreateWindow("MyWindow");
glutDisplayFunc(renderScene);
glutMainLoop();
return 0;
}
}
我得到 DllNotFound 异常。为什么?C#代码:
const string pathToDll = "../../../Release/MyDLL.dll";
[DllImport(pathToDll)]
public static extern void HelloFromDll();
[DllImport(pathToDll)]
public static extern int InitGlut();
private void Window_Loaded(object sender, RoutedEventArgs e)
{
HelloFromDll();
InitGlut();
}