【发布时间】:2016-04-10 14:49:26
【问题描述】:
我想做一个单元测试驱动程序。
它读取tests.txt,内容如下:
I32 cdecl32 func(in I32, in szC8P32, out I32P32, out sC8P32)
in in out out ret out out ret ...
16 test 5 test2 1
被调用者有这样的声明:
int __cdecl func(const int, const char*, int*, char*);
测试驱动使用LoadLibrary和GetProcAddress获取函数的地址。
但是,驱动程序不会包含func 的声明。它将用于测试其他功能类型。就像一个通用工具。
参数应通过解析tests.txt 动态给出。
有可能吗?我该怎么办?
【问题讨论】:
-
我会说在汇编中编写这种代码更容易,因为您只需要将正确的参数推入堆栈和
call内存地址。试图用强类型静态编译语言实现这样的事情是一团糟。 -
@DavidHaim:C 不是强烈类型的!
-
@Olaf 它是强类型但弱检查
-
@DavidHaim:请重新审视定义。它是弱类型的,例如因为从“较大”类型自动转换为“较小”类型和自动类型强制。例如:
int i; ... char ch = i;. -
@DavidHaim:这当然是假设一个在堆栈上传递参数的系统。
标签: c++ c unit-testing visual-c++