0

我有一个编码的 ui 测试,我想通过使用批处理开始,它是一个 .dll 文件。

我从批处理文件中调用它的原因是必须重新启动服务器才能执行此测试。

这只是一个简单的call test.dll事情还是我必须做其他事情?

找到更新 代码

Playback.Initialize();
TestProject.CodedUITest1 coded = new TestProject.CodedUITest1();
coded.CodedUITestMethod1();
Playback.Cleanup();

取自这里,它缺少来自私有程序集的两个参考添加:

  1. Microsoft.VisualStudio.TestTools.UITest.Extension.Uia.dll
  2. Microsoft.VisualStudio.TestTools.UITest.Extension.IE.dll

希望这可以帮助其他想要这样做的人

4

2 回答 2

1

您不能像运行 exe 一样运行 Dll 文件。Dll 包含旨在由程序使用的代码,这意味着一个代码源可以被许多程序使用,从而节省了重复代码。

通常 Dll 将具有您可以通过程序调用的文档化函数,除非您自己构建它,在这种情况下您会知道 :)

尝试找到使用 Dll 的程序并调用它,或者找到它的文档并rundll32以 @PA 的身份运行该函数。建议。

于 2012-07-13T12:19:45.933 回答
0

DLL 是需要从应用程序链接和调用的动态库。每个 DLL 都有自己的导出接口,或要从外部可执行文件调用的入口点集合,或者可能是从另一个 DLL 调用的入口点集合。

Windows 提供了一组调用来帮助调用程序加载、检测入口点和卸载 DLL。除了这些有限的通用功能之外,还有无数种使用 DLL 的方式、调用约定、传递参数的方式、参数的类型、返回数据的方式、同步、通知的方式事件,中断,多线程,几乎在编程模型的每个方面。

话虽如此,您的 DLL 可能会被某些特定的应用程序调用,因此可能遵循严格且定义良好的 API。一种这样的 DLL 是旨在与rundll可执行程序一起运行的 Windows 系统 DLL。rundll32.exe是 Windows 系统可执行文件,它从一个明确编程为以这种方式调用的 DLL 启动和调用打包和交付在 .dll 文件中的函数。

要在 TEST.DLL 中调用 TestFunction,将 1234 作为参数传递,您可以使用

RUNDLL32  TEST.DLL, TestFunction 1234

Rundll 将为您执行以下任务

  • 通过 LoadLibrary() 加载 TEST.DLL。
  • 通过 GetProcAddress() 寻址 TestFunction 函数。
  • 调用 TestFunction 函数,传递命令行的其余部分
  • 卸载 DLL 并退出。
于 2012-07-13T12:12:53.737 回答