vs2010 一个解决方案 多个项目 调试

S2010启动多个实例调试

项目中经常出现一个解决方案里面有多个程序,如果想按F5启动多个实例进行操作调试那该怎么操作呢?

以前自己都使用附加进程的方法调试,这样的调试不需要按F5,自己只要运行多个程序后,使用vs的附加进程到对应的进程中就可以进行断点调试了。

现在学到的一种方法,感觉比较简单和正统,记录于此:

1.解决方案右击,选择属性:

 

2.这样你按F5启动调试,程序就自动打开上面的两个程序了,如果这个时候你还想在增加一个实例程序,你可以vs中右键程序集----> 调试----->启动新实例。这样一个解决方案就运行了三个程序,这些程序你都可以直接调试了。:

 

 

有一个dll项目和一个exe项目如何实现两个项目的联调呢?

两个方法: 
第一个方法:在dll工程里 打开 工程属性--debugging--command输入你的exe程序名。然后直接运行dll,这时dll工程将运行exe程序,并进入到dll的调试环境。
第二个方法: 将dll的outputdir设置为你exe程序的输出目录,打开exe工程直接调试exe文件,可以看到dll源码的单步运行。

  • 7
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是简单的步骤: 1. 打开VS2010,创建一个新的Win32控制台应用程序项目 2. 在“解决方案资源管理器”中,右键单击项目名称,选择“添加”->“新建项”,命名为“SerialPortHelper.cpp” 3. 在“解决方案资源管理器”中,右键单击项目名称,选择“属性”,在“配置属性”中选择“常规”,将“字符集”选择为“使用多字节字符集” 4. 在“解决方案资源管理器”中,右键单击项目名称,选择“属性”,在“配置属性”中选择“C/C++”,在“常规”中将“附加包含目录”添加“C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include” 5. 在“解决方案资源管理器”中,右键单击项目名称,选择“属性”,在“配置属性”中选择“链接器”,在“常规”中将“附加库目录”添加“C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib” 6. 在“解决方案资源管理器”中,右键单击项目名称,选择“属性”,在“配置属性”中选择“链接器”,在“输入”中将“附加依赖项”添加“kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib” 7. 在“解决方案资源管理器”中,双击“SerialPortHelper.cpp”打开文件,输入以下代码: ```c++ #include <windows.h> #include <stdio.h> int main() { HANDLE hComm; BOOL fSuccess; DWORD dwEvtMask; char lpBuffer[1024]; DWORD lpNumberOfBytesRead; DCB dcbSerialParams = {0}; COMMTIMEOUTS timeouts = {0}; // 打开串口 hComm = CreateFile("COM1", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); if (hComm == INVALID_HANDLE_VALUE) { printf("Error opening serial port\n"); return 1; } // 配置串口参数 dcbSerialParams.DCBlength = sizeof(dcbSerialParams); fSuccess = GetCommState(hComm, &dcbSerialParams); if (!fSuccess) { printf("Error getting current serial port state\n"); CloseHandle(hComm); return 1; } dcbSerialParams.BaudRate = CBR_9600; dcbSerialParams.fBinary = TRUE; dcbSerialParams.fParity = FALSE; dcbSerialParams.fOutxCtsFlow = FALSE; dcbSerialParams.fOutxDsrFlow = FALSE; dcbSerialParams.fDtrControl = DTR_CONTROL_ENABLE; dcbSerialParams.fDsrSensitivity = FALSE; dcbSerialParams.fTXContinueOnXoff = TRUE; dcbSerialParams.fOutX = FALSE; dcbSerialParams.fInX = FALSE; dcbSerialParams.fErrorChar = FALSE; dcbSerialParams.fNull = FALSE; dcbSerialParams.fRtsControl = RTS_CONTROL_ENABLE; dcbSerialParams.fAbortOnError = FALSE; dcbSerialParams.wReserved = 0; dcbSerialParams.XonLim = 2048; dcbSerialParams.XoffLim = 512; dcbSerialParams.ByteSize = 8; dcbSerialParams.Parity = NOPARITY; dcbSerialParams.StopBits = ONESTOPBIT; fSuccess = SetCommState(hComm, &dcbSerialParams); if (!fSuccess) { printf("Error setting serial port state\n"); CloseHandle(hComm); return 1; } // 配置超时时间 timeouts.ReadIntervalTimeout = 50; timeouts.ReadTotalTimeoutConstant = 50; timeouts.ReadTotalTimeoutMultiplier = 10; timeouts.WriteTotalTimeoutConstant = 50; timeouts.WriteTotalTimeoutMultiplier = 10; fSuccess = SetCommTimeouts(hComm, &timeouts); if (!fSuccess) { printf("Error setting serial port timeouts\n"); CloseHandle(hComm); return 1; } // 监听串口事件 fSuccess = SetCommMask(hComm, EV_RXCHAR); if (!fSuccess) { printf("Error setting serial port event mask\n"); CloseHandle(hComm); return 1; } // 循环读取串口数据 while (1) { fSuccess = WaitCommEvent(hComm, &dwEvtMask, NULL); if (!fSuccess) { printf("Error waiting for serial port event\n"); CloseHandle(hComm); return 1; } if (dwEvtMask & EV_RXCHAR) { fSuccess = ReadFile(hComm, lpBuffer, sizeof(lpBuffer), &lpNumberOfBytesRead, NULL); if (!fSuccess) { printf("Error reading from serial port\n"); CloseHandle(hComm); return 1; } printf("%.*s", lpNumberOfBytesRead, lpBuffer); } } // 关闭串口 CloseHandle(hComm); return 0; } ``` 8. 保存并编译程序,生成exe文件 9. 使用串口连接设备后,打开cmd,切换到exe文件所在的目录,输入文件名并回车即可运行 以上代码只是一个简单的示例,可以根据实际需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值