1.c dllimportԴ?源码?
c dllimportԴ??
第一步,准备调试环境。源码使用C#编写测试程序以加载并运行dll文件,源码该dll源代码为C语言编写,源码运行结果为黑屏,源码rt 源码因此C#代码同样在黑屏的源码源码编译安装 hadoopconsole环境下运行。测试程序代码如下:
```csharp
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace TestMelp
{
class Program
{
[DllImport(@"D:\Visual Studio Projects\FileMelp\Debug\FileMelp.dll",源码 CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
extern static void cmd_melp(int argc, string[] argv);
static void Main(string[] args)
{
//string cmd = "melp -s -i D:/bin/bit -o D:/bin/output";
string cmd = "melp -a -i D:/bin/inputD -o D:/bin/bitRight";
string[] argv = cmd.Split(new char[] { ' ' });
int argc = argv.Length;
cmd_melp(argc, argv);
}
}
}
```
由于dll和测试程序不在同一目录,可能出现文件路径问题,源码测试程序中采用了绝对路径。源码另外,源码注意cmd命令行中不能有两个连续空格,源码可通过`Trim`方法解决。源码
第二步,源码网络组态软件源码定位到含有源代码的源码dll工程。本文中的源码`FileMelp.dll`工程是依据之前的VS dll生成方法创建的,具体实现细节不再详述。在`FileMelp`工程的社交app平台源码`melp.h`和`melp.c`文件最底部添加以下代码:
```c
#ifndef LIB_H
#define LIB_H
extern _declspec(dllexport) void cmd_melp(int argc, char **argv);
/* 加入任意你想加入的函数定义 */
#endif
void cmd_melp(int argc, char **argv)
{
main(argc, argv);
}
```
然后按F6键,生成`FileMelp.dll`动态库。
第三步,将测试程序添加到dll源代码中。在`FileMelp`工程中,收银系统源码吾爱右键点击`FileMelp`工程选择属性,或者按`Alt+Enter`键,弹出如下界面。在`Configuration Properties`下的`Debugging`选项卡中,选择第一步中生成的测试`.exe`文件。这样就完成了调试前的准备工作。接下来,在需要调试的代码位置添加断点,开始调试。