我正在尝试做的事情:我有一些嵌入式 C 代码可以进行一些信号处理。我还有一套 C# 工具。我想使用 C# 代码调用带有一些波形的嵌入式 C 代码来“测试”算法,看看它在想什么/在做什么。
我做了什么:
嵌入式 C 代码:
__declspec (dllexport) void SigInit(int Flag);
void SigInit(int Flag) { ... }
我编译为 Win32 DLL。配置类型为“动态库 (.dll)”,MFC 设置为“使用标准 Windows 库”。我在 Visual Studio 2010 类查看器中“查看”了我的库,一切看起来都不错。
然后在我的 C# 代码中(带有 .NET 4.0 的 VS2010):
public static class ProcessSignals
{
[DllImport(@"C:\Users\rpease\Desktop\SigLibrary.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern void SigInit(int Flag);
}
但是每当我尝试运行主程序并调用 ProcessSignals.SigInit(0) 时:
无法在 DLL“C:\Users\rpease\Desktop\SigLibrary.dll”中找到名为“SigInit”的入口点。
我当时认为这是一个名称修改问题,但我认为我已经解决了这个问题。建议表示赞赏。我想我正在遵循以下指南:PInvoke DLL in C# but can't get over this。
谢谢,
罗杰