我试图从QTP调用C#dll(使用vbscript).我尝试了很多没有成功的事情:
码:
using System;
using System.Collections.Generic;
using System.Text;
namespace st
{
public class Class1
{
public static int GetValue()
{
return 34;
}
}
}
Run Code Online (Sandbox Code Playgroud)
regasm /codebase st.dll
在QTP/vbscript中,我试过了
extern.Declare micInteger, "GetValue", "e:\st.dll", "GetValue"
无论QTP如何,我都非常感谢有关如何从.vbs文件调用c#dll的任何见解.
我只能访问'C'并需要替换字符数组中的字符.对于这个相对简单的程序,我还没有想出任何干净的解决方案.
我传递了一个字符数组,例如:
char strBuffer[] = "/html/scorm12/course/course_index.jsp?user_id=100000232&course_id=100000879&course_prefix=ACQ&version=2&scorm_version=3&roster_id=100011365&course_name=Test%20Course%201.2&mode=browse&course_number=0000&mode_id=1";
Run Code Online (Sandbox Code Playgroud)
我需要修改这个缓冲,以取代所有&与&.生成的缓冲区不必覆盖strBuffer(可以创建新的缓冲区).
有什么建议?
编辑:
在过去,我已经在循环中完成了strstr函数,但是正在寻找一个更简单的解决方案,也许是C等效于String.Replace方法.
编辑:
对于我的迫切需求,以下就是我所需要的.
char strBuffer[] = "/html/scorm12/course/course_index.jsp?user_id=100000232&course_id=100000879&course_prefix=ACQ&version=2&scorm_version=3&roster_id=100011365&course_name=Test%20Course%201.2&mode=browse&course_number=0000&mode_id=1";
char strTemp[1024];
char *s = (char*)strBuffer;
int i=0;
while (*s)
{
strTemp[i++] = *s;
if (strncmp(s,"&",5) == 0)
{
s += 5;
}
else
s++;
}
strTemp[i] = 0;
Run Code Online (Sandbox Code Playgroud)
未来的修改:
编辑:
我创建了一篇博文,详细介绍了这些步骤并提供了更灵活的解决方案:
http://www.solutionmaniacs.com/blog/2012/11/25/c-removereplace-characters-in-a-string.html
我是编程的初学者.我参考了C编程的书籍,但我很困惑.
1.)printf和gets之间的区别是什么?我相信get更简单,没有任何格式?