小编and*_*ier的帖子

静态方法和单元测试

我一直在读,使用TDD时往往会避免使用静态方法,因为它们往往难以模拟.我发现,单元测试最简单的方法是一个具有简单功能的静态方法.不必实例化任何类,鼓励简单,做一件事,"独立"等方法.

有人可以解释TDD最佳实践和务实轻松之间的差异吗?

谢谢

c++ unit-testing

7
推荐指数
1
解决办法
5696
查看次数

以像素为单位获取excel单元格的大小

我试图以编程方式(C++但VBA解释没问题)以像素为单位获取excel单元格的大小.excel应用程序gui将单元格的大小显示为:
宽度:8.28(160像素)高度:24.6(41像素),字体是Arial 20磅.

使用excel范围我可以得到:
ColumnWidth:8.3,RowHeight:24.6
范围宽度:96,范围高度24.6

我尝试使用PointsToScreenPixelsX和PointsToScreenPixelsY来表示所有上述值,但它们返回的值与excel gui所说的不匹配(行/单元格高度为396,列宽为136,列宽为224).

有任何想法吗?

c++ excel vba

3
推荐指数
1
解决办法
7976
查看次数

CreateProcess可以启动一个进程,但QProcess不能......为什么?

我正在编写一个需要启动其他应用程序的Windows QT应用程序.如果我使用以下Windows调用一切正常:

QString qsExePath = "C:\\Program Files (x86)\\Some Company\\SomeApp.exe";
QString qsCommandLine = "";


DWORD dwLastError = 0;
STARTUPINFO startupInfo;
ZeroMemory(&startupInfo, sizeof(startupInfo));
startupInfo.cb = sizeof(startupInfo);
startupInfo.dwFlags = STARTF_USESHOWWINDOW;
startupInfo.wShowWindow = (WORD)1;

PROCESS_INFORMATION processInfo;
ZeroMemory(&processInfo, sizeof(processInfo));

if (CreateProcess((TCHAR*)(qsExePath.utf16()), (TCHAR*)(qsCommandLine.utf16()), 
    NULL, NULL, FALSE, 0, NULL, NULL, 
    &startupInfo, &processInfo))
{
    CloseHandle(processInfo.hProcess);
    CloseHandle(processInfo.hThread);
}
else
{
    dwLastError = GetLastError();
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用以下QT调用它不起作用并且因QProcess :: Unknown Error而失败.

QProcess process;
bool bStarted = process.startDetached(qsExePath);
qDebug()  << process.error();   
Run Code Online (Sandbox Code Playgroud)

如果将SomeApp.exe复制到我的%TMP%目录并相应地更改qsExePath,我可以使QProcess工作,因此显然是某种权限错误.我不明白为什么虽然......如果真的是权限,我的CreateProcess windows调用不应该失败吗?

c++ windows winapi qt qt4

3
推荐指数
1
解决办法
3636
查看次数

标签 统计

c++ ×3

excel ×1

qt ×1

qt4 ×1

unit-testing ×1

vba ×1

winapi ×1

windows ×1