Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在DLL中使用windowsapi 我编写了一个C++的简单声音合成类。这个类(我们称之为foo)使用waveOutAPI。我导入winmm.lib和windows.h以使WaveOutAPI正常工作_C++_Windows_Api_Dll - Fatal编程技术网

在DLL中使用windowsapi 我编写了一个C++的简单声音合成类。这个类(我们称之为foo)使用waveOutAPI。我导入winmm.lib和windows.h以使WaveOutAPI正常工作

在DLL中使用windowsapi 我编写了一个C++的简单声音合成类。这个类(我们称之为foo)使用waveOutAPI。我导入winmm.lib和windows.h以使WaveOutAPI正常工作,c++,windows,api,dll,C++,Windows,Api,Dll,现在我想将我的类foo导出到一个DLL,以便在C#中使用它。有很多来自的定义,例如mmeapi.h(我想当我包括winmm.lib时会包括它,但我只是猜测)。如何使用winmm.lib中的函数和定义?目前最简单的方法是编译混合模式C++/CLI DLL。它被称为混合模式,因为它混合了托管代码和非托管代码 你可以将你现有的C++类编译成混合模式的DLL。然后,要将功能导出为托管类,请将其封装在C++/CLI ref类中。完成后,您可以将其添加到C#程序中作为参考,一切都很好 你有什么问题?您是否遇

现在我想将我的类foo导出到一个DLL,以便在C#中使用它。有很多来自的定义,例如mmeapi.h(我想当我包括winmm.lib时会包括它,但我只是猜测)。如何使用winmm.lib中的函数和定义?

目前最简单的方法是编译混合模式C++/CLI DLL。它被称为混合模式,因为它混合了托管代码和非托管代码


<>你可以将你现有的C++类编译成混合模式的DLL。然后,要将功能导出为托管类,请将其封装在C++/CLI ref类中。完成后,您可以将其添加到C#程序中作为参考,一切都很好

你有什么问题?您是否遇到编译器错误?运行时错误?你问如何在DLL中导出类吗?如果问题是如何从C++调用C++ API,使用DLLIMPART:如果我正确地理解问题,总计达现有的注释,你也可以创建COM DLL,并将其加载到C。这样你可以使用你创建的对象,而不仅仅是调用函数。是的,对不起,我现在意识到这个问题有点模糊。我无法编译,因为我的代码使用了很多来自mmeapi.h的定义(例如HWAVEOUT、WAVEFORMATEX等),我可以在我的类中复制这些定义,但如果我这样做,我觉得我做错了。@TCS很好!我没有提到,但这确实是我想做的。听起来不错!你知道教程的链接吗,或者其他让我开始学习的方法吗?我在谷歌上搜索过,但找不到一个简单易懂的网站。这是我在网上搜索到的第一个热门:你是个英雄!(显然,我是一个差劲的谷歌搜索者……为我辩护,已经很晚了。)好吧,我还没有解决(还没有找到时间),但希望我有空的时候能解决。谢谢你的帮助!