我正在尝试对本机代码使用 microsoft 单元测试,但是在编写基本测试后我遇到了一个问题:我找不到如何使用参数创建测试方法。
在搜索主题时,我找到了一些添加此类方法的方法,即编写数据驱动的测试(例如,http://msdn.microsoft.com/en-us/library/ms182527.aspx)。但是,我不知道如何将它与本机 C++ 测试一起使用。
据我所知,不TEST_METHOD存在带有参数的函数的宏,不存在“DataSource”属性的宏等。
是否有使用 MsTest 设置本机 C++ 代码的数据驱动测试的示例?
我在GitLab中有一个与Gitlab CI集成的项目。竭尽全力推动项目的发展。
但是,当创建新分支并将其推入存储库时,gitlab CI中不会保留构建。启用其他分支构建的设置是什么-交替出现,我如何确定出了什么问题?
我正在尝试在Visual Studio 2008中为Windows Mobile编译zlib.
但是,这会导致错误.在文件zconf.h中包含文件sys/types.h.
虽然这个文件是在标准的visual studio include目录中,但是windows mobile sdk附带的文件夹ce/include中没有sys子文件夹,而且这里没有types.h文件.
因此,zlb无法编译.
该如何解决?
更新:包含本身在#if块中.再具体一点:
#ifdef STDC
# ifndef Z_SOLO
# include <sys/types.h> /* for off_t */
# endif
#endif
Run Code Online (Sandbox Code Playgroud)
这带来了另一个问题.Z_SOLO宏的含义是什么?它充斥在#ifdef中,就像在zlib中一样,但是搜索它并不能给出应该是什么的线索.顺便说一下,它没有定义.
我正在创建一个表控件,除了显示其模型的DisplayRole之外,还显示一些其他文本数据.在所有其他方面,文本和单元格显示应该相同.我遇到的问题是正确显示突出显示的单元格.
我目前正在使用以下代码:
void MatchDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
if (option.state & QStyle::State_Selected)
painter->fillRect(option.rect, option.palette.highlight());
painter->save();
QString str = qvariant_cast<QString>(index.data())+ "\n";
str += QString::number(qvariant_cast<float>(index.data(Qt::UserRole)));
if (option.state & QStyle::State_Selected)
painter->setBrush(option.palette.highlightedText());
else
painter->setBrush(qvariant_cast<QBrush>(index.data(Qt::ForegroundRole)));
painter->drawText(option.rect, qvariant_cast<int>(index.data(Qt::TextAlignmentRole)), str);
painter->restore();
}
Run Code Online (Sandbox Code Playgroud)
但是,结果如下所示:

文本颜色错误,单元格周围没有划线,当控件失去焦点时,单元格保持蓝色而不是像默认单元格所绘制的那样变为浅灰色.
如何改变绘画代码来解决这些问题?
我已经使用 elpa 安装了许多软件包,并希望为它们适当地生成自动加载。为此,我添加到我的 init 文件中:
(apply 'update-directory-autoloads (directory-files package-user-dir t "[^\.].*"))
Run Code Online (Sandbox Code Playgroud)
但是,我因以下回溯而失败:
Debugger entered--Lisp error: (wrong-type-argument stringp nil)
expand-file-name(nil "/build/buildd/emacs24-24.3+1/debian/build-x/lisp")
autoload-generated-file()
autoload-find-generated-file()
update-directory-autoloads("/home/survivor/.emacs.d/elpa/ahg-20140818.130")
eval((update-directory-autoloads "/home/survivor/.emacs.d/elpa/ahg-20140818.130") nil)
eval-last-sexp-1(nil)
eval-last-sexp(nil)
call-interactively(eval-last-sexp nil nil)
Run Code Online (Sandbox Code Playgroud)
我试图这样做的方式是错误的吗?我应该为我require的每个包裹都放上吗?
我正在尝试从 Hy 生成一些 python 代码。怎么做比较好?
我尝试了几种方法。一种是使用宏:
(defmacro make-vars [data]
(setv res '())
(for [element data]
(setv varname (HySymbol (+ "var" (str element))))
(setv res (cons `(setv ~varname 0) res)))
`(do ~@res))
Run Code Online (Sandbox Code Playgroud)
然后在捕获宏扩展后,我打印代码的python反汇编。
但是,似乎使用宏我无法传递变量,因此:
(setv vnames [1 2 3])
(make-vars vnames)
Run Code Online (Sandbox Code Playgroud)
定义varv, varn,vara等,而不是var1, var2, var3。似乎可以通过以下方式进行正确的调用:
(macroexpand `(make-vars ~vnames))
Run Code Online (Sandbox Code Playgroud)
但这似乎过于复杂。
我遇到的其他问题是 的必要性HySymbol,这是一个很大的惊喜。但是当我尝试第二种方法时,我真的受到了伤害,我创建了一个返回引用形式的函数:
(defn make-faction-detaches [faction metadata unit-types]
(let [meta-base (get metadata "Base")
meta-pattern (get metadata "Sections")
class-cand []
class-def '()
class-grouping …Run Code Online (Sandbox Code Playgroud) 我正在尝试为Windows Mobile 6编译libpng,但是我得到以下链接器错误:
error LNK2019: unresolved external symbol __imp___iob_func referenced in function png_default_error libpng.lib
error LNK2019: unresolved external symbol __imp_abort referenced in function png_longjmp
Run Code Online (Sandbox Code Playgroud)
使用/ MD选项完成编译,我的主项目之间相同.zlib和libpng.
当使用/ MT时,仍然存在错误,但略有不同:
error LNK2019: unresolved external symbol __iob_func referenced in function png_default_error
error LNK2019: unresolved external symbol abort referenced in function png_longjmp
Run Code Online (Sandbox Code Playgroud)
这带来了几个问题.
__imp___iob_func和__imp_abort?我的libpng编译器选项:
/Od /I "..\lib\zlib-1.2.7" /I "..\lib\lpng1512" /D "_DEBUG" /D "_WIN32_WCE=0x502" /D "UNDER_CE" /D "WIN32_PLATFORM_PSPC" /D "WINCE" /D "DEBUG" /D "_WINDOWS" /D "_USRDLL" /D "LIBPNG_EXPORTS" /D …Run Code Online (Sandbox Code Playgroud) 我有没有复制构造函数或赋值运算符的类.我需要创建并初始化该类的实例.我怎么做?
代码有问题(例子):
class Q
{
int w;
public:
Q():w(19){};
Q(const Q&) = delete;
Q& operator = (const Q&) = delete;
static Q sQ;
};
Q Q::sQ = Q();
Run Code Online (Sandbox Code Playgroud)
用例:我有一个派生自的类,QObject因此删除了赋值运算符和复制构造函数.应该有一个类的静态实例,如何实现?
我正在为我的应用程序使用QT,最后使用QLabel来显示图像.但是,它显示为裁剪.如何将QLabel的大小设置为其pixmap之一?怎么能这样做,如果pixmap改变它会改变?
我需要创建一个生成如下函数的函数:
(defun add3 (val) (+ 3 val))
Run Code Online (Sandbox Code Playgroud)
应该像这样使用:
(setq adder7 nil)
(fset 'adder7 (make-adder 7))
(adder7 3)
=> 10
Run Code Online (Sandbox Code Playgroud)
理想情况下,函数make-adder应该返回除了参数之外没有任何符号的lambdas,例如:
(make-adder 7)
=> (lambda (val) (+ 7 val))
Run Code Online (Sandbox Code Playgroud)
更新
我尝试过以下天真的实现:
(defun make-adder (n)
(lambda (x) (+ n x)))
Run Code Online (Sandbox Code Playgroud)
但是这会生成一个包含自由符号(不是数字常量!)的lambda,并且它的使用失败.
(defalias 'add1 (make-adder 1))
(add1 2)
=> Debugger error void-variable n
(let ((n 5))
(add1 2))
=> 7
Run Code Online (Sandbox Code Playgroud)
这根本不是我想要的.