精华内容
下载资源
问答
  • VB中常用函数

    千次阅读 2011-11-17 16:34:00
    以下为VB中常用函数: 1.p=ABS(X):取X的绝对值. 2.p=Log(X):求X的自然对数. 3.Y=Sgn(X):符号函数. 说明: X>0时Y=1;X=0时 Y=0;X 例: Response.write sgn(5)  输出: 1 4.Sin(x),Cos(x), Tan(x),Atn(x): 三角...

    以下为VB中常用函数:

    1.p=ABS(X):取X的绝对值.
    2.p=Log(X):求X的自然对数.
    3.Y=Sgn(X):符号函数.
    说明: X>0时Y=1;X=0时 Y=0;X<0 时Y=-1.
    例:  Response.write sgn(5)
      输出: 1
    4.Sin(x),Cos(x), Tan(x),Atn(x): 三角函数
    5.Ctype(x):类型转换:
    P=Cbool(x)
    把X转成”布尔”值
    P=Cbyte(X)
    字节
    P=Ccur(x)
    金额
    P=Cdatel(x)
    日期
    P=Cintl(x)
    双精度
    P=CDbl(x)
    整型
    P=Clng(x)
    长整型
    P=Csng(X)
                单精度
    P=Cstr(x)
    字符串
    例:Response.write    CDbl(#1/1/1900#)
    结果:   2 
    注意:True  :-1      False:   0 


    日期:  #12/30/1899#  为 0  ,每往后 1 日数值加1 .每往前1日数值减 1 
    6.Int (x)  :取<=X的整数值
    7.Fix(X) :取X的整数部分,直接去掉小数部分.
             Response.Write Int(-54.6)
    结果为:-55 .取<=-54.6的最大整数.
    Response.Write Int(54.6)
    结果: 54.
    Response.Write Fix(54.6)
    结果: 54
    Response.Write Fix(-54.6)
    结果: -54

    8.Asc(X) :返回字符串的第一个字符的字符码。
    9.Chr(X): 返回字符码X的字符.
             P=Asc(“A”)     p=65
             P=Chr(65)       p=A
    10.Filter : 查找字符串数组的特定字符串。
    P=Filter(X,S[,Include[,Compare]])
    参数X为一字符串数组,而参数S则是欲查找的字符串,调用之后,凡是X数组元素中含有字符串S者都会组合在一起成为另一个字符串数组,然后返回。Filter 也可以把查找之后,把不含S字符串的数组元素挑出来,此时参数三Include应当设置成False. 如果要不分大小写查找,则Compare 设置为 vbTextCompare.
    例:
    ReDimX(2)
    X(0)=”KJDFS” :  X(1)=”WANDFKJ”  : X(2)=”fsda”
    V=Filter(X,”kj”,false)
    结果: V(0)=”fsda”
    10.Instr(x,y)  从X第一个字符起找出Y出现的位置
    11.Instr(n,x,y)从X第N个字符起找出Y出现的位置.
    在X中找到Y,则返回值是Y的第一个字符出现的位置.
    若N>字符串长度,或X为空字符串,或在X中找不到Y,都返回0.
    若Y为空字符串,则返回N.
    InStrRev     倒过来寻找字符串.
    P=InStrRev(c,s[,n[,compare]])
    从字符串X的后面往前找,若找到,则返回S字符串在字符中的位置.
    N为从第几个字符开始寻找,设置compare ,可以不区分大小写的寻找.
    12.
    Join(x[,d]) 将字符串数组合成一个字符串.
    参数X是一个字符串数组,调用JOIN后,X的所有字符串元素将串在一起组合成一个字符串,然后返回.
    D参数用来指定分隔字符.
    X=Array(“da”,”fdsa”,”fdas”)
    P=Join(X,”,”)
    P=”da,fdsa,dsas”
    12.Len(X):计算字符串X的长度.
    空字符长度为0,空格也算一个字符,中方虽然占用2bytes,但也算一个字符.
    13, Left(X,n):返回字符串X左边n 个字符。
    若N=0,则返回空字符串,若n>=Len(X),则返回整个字符串。
    14,Mid(X,n):由X的第N个字符起,读取后面的所有字符。
    Mid(X,n,m):由X的第n个字符起,读起m个字符。
    若n>Len(X),则返回空字符串,若第n个字符以后不足m个字符,则返回后面的所有字符。
    14.Ltrim(X),Rtrim(X),Trim(X) :去掉空字符。
    Ltrim(x) 去掉X左边的所有字符。
    trim(x) 去掉X左右边的所有字符
    Rtrim(x) 去掉X右边的所有字符。
    字符与字符间的空格不会被去掉。
    X=Ltrim(“    This is good   “)
    结果:X=“This is good   “
    X=Trim(“     This si good    “)
    结果:X=”This is good”
    16.Right(X,n):返回字符串X右边N个字符。
    P=Replace(X,S,R)
    将字符串X中的字符串S替换成为字符串R,然后返回。
    X=“asp is good”
    P=Replace(X,good,nice)
    P=”asp is nice”
    Space(n) :返回N个空格所组成的字符串,
    P=Space(n,X) :返回N个X的第一个字符所组成的字符串。
    X可以是字符串,也可以是字符码。
    17,Split:将字符串侵害成字符串数组。
    P=Split(S[,d])
    以D参数为分隔字符,将字符串S侵害成多个字符串后,组成一个字符串数组。然后返回,若省略D参数,则以空格符为分隔字符。
    P=Split(“a,b,c”,”,”)
    P(0)=”a”,p(1)=”b”,p(2)=”c”
    18,StrReverse:反转字符串。
    PstrReverse(X)
    返回X参数反转以后的字符串。
    P=StrReverse(“ABC”)
    P=”CBA”
    19. Ucase(X),Lcase(X): 转换英文字母的大小写。
    P=Lcase(X)    将字符串X的大写字母转为小写。
    P=Ucase(X)    将字符串X的小写字母转为大写。
    只有英文字母才会受影响。

    展开全文
  • 在iOS开发的过程,经常会使用 NSLog 作为调试和查看相关数据的输出口,该方法连接Xcode构建项目时能够实时输出开发者在代码线打印的日志。但是在断开Xcode并使用真机测试的时候,经常会无法查看真机的实时日志,...

    在iOS开发的过程中,经常会使用 NSLog 作为调试和查看相关数据的输出口,该方法连接Xcode构建项目时能够实时输出开发者在代码线中打印的日志。但是在断开Xcode并使用真机测试的时候,经常会无法查看真机的实时日志,导致一些问题难以追查和确定,使得问题的定位与解决花费较长的时间,一定程度上影响了产品开发的进度和优化。

    面对诸如此类的问题,我们可以通过Log信息的重定向等技术,让相关的Log信息转存到一个我们能够提取的地方,方便开发人员在出现问题的时候,得到详细的Log信息,快速的识别出问题的原因并修复和优化等。

    //NSLog的输出到底在哪里?//

    在iOS的系统API中,专门提供了一个上层函数 NSLog 以供开发者调用并打印相关的信息, NSLog 本质上是一个C函数,它的声明如下:

    FOUNDATION_EXPORT void NSLog(NSString *format, ...)

    系统对该函数的说明是: Logs an error message to the Apple System Log facility 。简单的说就是用来输出信息到标准的

    Error控制台上,其内部其实是使用 Apple System Log(asl) 的API,至少iOS 10以前是这样。在调试阶段,日志会输出到Xcode

    中,而在真机上,会输出到系统的 /var/log/syslog 文件中。

    //Apple System Logger//

    我们可以通过官方文档了解到,OC中最常见的NSLog操作会同时将标准的Error输出到控制台和系统日志(syslog)中(C语言的printf 系列函数并不会,swift的printf为了保证性能也只会在模拟器环境中输出)。其内部是使用Apple System Logger(简称ASL)去实现的,ASL是苹果自己实现的用于输出日志到系统日志库的一套API接口,有点类似于SQL操作。在iOS真机设备上,使用ASL记录的log被缓存在沙盒文件中,直到设备被重启。

    既然日志被写入系统的syslog中,那我们可以直接读取这些日志。从ASL读取日志的核心代码如下:

    注:滑动查看完整代码(下同)

     1#import 
    2//  从日志的对象aslmsg中获取我们需要的数据
    3+(instancetype)logMessageFromASLMessage:(aslmsg)aslMessage{ SystemLogMessage *logMessage = [[SystemLogMessage alloc] init]; const char *timestamp = asl_get(aslMessage, ASL_KEY_TIME);
    4if (timestamp) {
    5NSTimeInterval timeInterval = [@(timestamp) integerValue];
    6const char *nanoseconds = asl_get(aslMessage, ASL_KEY_TIME_NSEC);
    7if (nanoseconds) {
    8timeInterval += [@(nanoseconds) doubleValue] / NSEC_PER_SEC;
    9}
    10logMessage.timeInterval = timeInterval;
    11logMessage.date = [NSDate dateWithTimeIntervalSince1970:timeInterval];
    12}
    13const char *sender = asl_get(aslMessage, ASL_KEY_SENDER);
    14if (sender) {
    15logMessage.sender = @(sender);
    16}
    17const char *messageText = asl_get(aslMessage, ASL_KEY_MSG);
    18if (messageText) {
    19logMessage.messageText = @(messageText);//NSLog写入的文本内容
    20}
    21const char *messageID = asl_get(aslMessage, ASL_KEY_MSG_ID);
    22if (messageID) {
    23logMessage.messageID = [@(messageID) longLongValue];
    24}
    25return logMessage;
    26}
    27
    28+ (NSMutableArray *)allLogMessagesForCurrentProcess{ asl_object_t query = asl_new(ASL_TYPE_QUERY);29//  Filter  for  messages  from  the  current  process.30// Note that this appears to happen by default on device,31//  but  is  required  in  the  simulator.3233NSString *pidString = [NSString stringWithFormat:@"%d", [[NSProcessInfo processInfo] processIdentifier]]; asl_set_query(query, ASL_KEY_PID, [pidString UTF8String], ASL_QUERY_OP_EQUAL);3435aslresponse response = asl_search(NULL, query); aslmsg aslMessage = NULL;3637NSMutableArray *logMessages = [NSMutableArray array];38while ((aslMessage = asl_next(response))) {39[logMessages addObject:[SystemLogMessage logMessageFromASLMessage:aslMessage]];40}41asl_release(response);4243return logMessages;44}

    使用以上方法的好处是不会影响Xcode控制台的输出,可以用非侵入性的方式来读取日志。

    //ASL在iOS10后被弃用//

    但是Apple从iOS 10开始,为了减弱ASL对于日志系统的侵入性,直接废弃掉了ASLlink,导致在iOS 10之后的系统版本中无法使用ASL相关的API。因此为了能够在iOS 10之后的版本中同样获取日志数据,我们寻找一种版本兼容的解决方案。

    //    NSLog重定向    //

    NSLog能输出到文件syslog中,靠的是文件IO的API的调用,那么在这些IO操作中,一定存在文件句柄。在C语言中,存在默认的三个文件句柄:

    #define stdin stdinp 

    #define stdout stdoutp 

    #define stderr stderrp

    其对应的三个iOS版本的文件句柄是(定义在 unistd.h 文件中):

    9e85c450d6a74878531ef32b2a2c2b60.png

    在使用重定向之后,NSLog就不会写到系统的syslog中了。

    //    dup2重定向     //

    通过重定向,可以直接截取 stdout,stderr 等标准输出的信息,然后保存在想要存储的位置,上传到服务器或者显示到View上。要做到重定向,需要通过 NSPipe 创建一个管道,pipe有读端和写端,然后通过 dup2 将标准输入重定向到pipe的写端。再通

    过 NSFileHandle 监听pipe的读端,最后再处理读出的信息。 之后通过 printf 或者 NSLog 写数据,都会写到pipe的写端,同时

    pipe会将这些数据直接传送到读端,最后通过NSFileHandle的监控函数取出这些数据。 核心代码如下:

     1- (void)redirectStandardOutput{
    2//记录标准输出及错误流原始文件描述符
    3self.outFd = dup(STDOUT_FILENO); self.errFd = dup(STDERR_FILENO);
    4#if BETA_BUILD
    5stdout->_flags = 10;
    6NSPipe *outPipe = [NSPipe pipe];
    7NSFileHandle *pipeOutHandle = [outPipe fileHandleForReading]; dup2([[outPipe fileHandleForWriting] fileDescriptor], STDOUT_FILENO); [pipeOutHandle readInBackgroundAndNotify];
    8
    9stderr->_flags = 10;
    10NSPipe *errPipe = [NSPipe pipe];
    11NSFileHandle *pipeErrHandle = [errPipe fileHandleForReading]; dup2([[errPipe fileHandleForWriting] fileDescriptor], STDERR_FILENO); [pipeErrHandle readInBackgroundAndNotify];
    12[[NSNotificationCenter defaultCenter] addObserver:self
    13
    14selector:@selector(redirectOutNotificationHandle:) name:NSFileHandleReadCompletionNotification object:pipeOutHandle];
    15
    16[[NSNotificationCenter defaultCenter] addObserver:self
    17selector:@selector(redirectErrNotificationHandle:) name:NSFileHandleReadCompletionNotification object:pipeErrHandle];
    18#endif
    19}
    20
    21-(void)recoverStandardOutput{
    22#if BETA_BUILD
    23dup2(self.outFd, STDOUT_FILENO); dup2(self.errFd, STDERR_FILENO);
    24[[NSNotificationCenter defaultCenter] removeObserver:self];
    25#endif
    26}
    27
    28// 重定向之后的NSLog输出
    29- (void)redirectOutNotificationHandle:(NSNotification *)nf{ #if BETA_BUILD
    30NSData *data = [[nf userInfo] objectForKey:NSFileHandleNotificationDataItem]; NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    31// YOUR CODE HERE... 保存日志并上传或展示
    32#endif
    33[[nf object] readInBackgroundAndNotify];
    34}
    35
    36// 重定向之后的错误输出
    37- (void)redirectErrNotificationHandle:(NSNotification *)nf{ #if BETA_BUILD
    38NSData *data = [[nf userInfo] objectForKey:NSFileHandleNotificationDataItem]; NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    39// YOUR CODE HERE... 保存日志并上传或展示
    40#endif
    41[[nf object] readInBackgroundAndNotify];
    42}

    dup函数可以为我们复制一个文件描述符,传给该函数一个既有的描述符,它就会返回一个新的描述符,这个新的描述符是传给它的描述符的拷贝。这意味着,这两个描述符共享同一个数据结构。

    而dup2函数跟dup函数相似,但dup2函数允许调用者规定一个有效描述符和目标描述符的id。dup2函数成功返回时,目标描述符(dup2函数的第二个参数)将变成源描述符(dup2函数的第一个参数)的复制品,换句话说,两个文件描述符现在都指向同一个文件,并且是函数第一个参数指向的文件。

    //    文件重定向     //

    另一种重定向的方式是利用c语言的 freopen 函数进行重定向,将写往 stderr 的内容重定向到我们制定的文件中去,一旦执行了上述代码那么在这个之后的NSLog将不会在控制台显示了,会直接输出在指定的文件中。 在模拟器中,我们可以使用终端

    的 tail 命令(tail -f xxx.log)对这个文件进行实时查看,就如同我们在Xcode的输出窗口中看到的那样,你还可以结合 grep 命令进行实时过滤查看,非常方便在大量的日志信息中迅速定位到我们要的日志信息。

    FILE * freopen ( const char * filename, const char * mode, FILE * stream );

    核心代码如下:

    1NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectoryNSUserDomainMaskYES); NSString *documentsPath = [paths objectAtIndex:0];
    2NSString *loggingPath = [documentsPath stringByAppendingPathComponent:@"/xxx.log"];
    3//redirect NSLog
    4freopen([loggingPath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stderr);

    这样我们就可以把可获取的日志文件发送给服务端或者通过itunes共享出来。但是由于iOS严格的沙盒机制,我们无法知道stderr原来的文件路径,也无法直接使用沙盒外的文件,所以freopen无法重定向回去,只能使用第1点所述的dup和dup2来实现。

    1// 重定向
    2int origin1 = dup(STDERR_FILENO);
    3FILE * myFile = freopen([loggingPath cStringUsingEncoding:NSASCIIStringEncoding], "a+"stderr);
    4
    5// 恢复重定向
    6dup2(origin1, STDERR_FILENO);
    //使用GCD的dispatch Source重定向方式//

    具体代码如下:

     1- (dispatch_source_t)_startCapturingWritingToFD:(int)fd {
    2int fildes[2];
    3pipe(fildes);  //  [0]  is  read  end  of  pipe  while  [1]  is  write  end dup2(fildes[1], fd);  //  Duplicate  write  end  of  pipe  "onto"  fd  (this  closes  fd) close(fildes[1]);  //  Close  original  write  end  of  pipe
    4fd = fildes[0];  //  We  can  now  monitor  the  read  end  of  the  pipe
    5char* buffer = malloc(1024);
    6NSMutableData* data = [[NSMutableData alloc] init]; fcntl(fd, F_SETFL, O_NONBLOCK);
    7dispatch_source_t source = dispatch_source_create(
    8DISPATCH_SOURCE_TYPE_READ, fd, 0, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0)); dispatch_source_set_cancel_handler(source, ^{
    9free(buffer);
    10});
    11dispatch_source_set_event_handler(source, ^{ @autoreleasepool {
    12
    13while (1) {
    14ssize_t size = read(fd, buffer, 1024);
    15if (size <= 0) {
    16break;
    17}
    18[data appendBytes:buffer length:size];
    19if (size 1024) {
    20break;
    21}
    22}
    23
    24
    25
    26
    27
    28}
    29});
    30
    31NSString *aString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    32//printf("aString  =  %s",[aString  UTF8String]);
    33//NSLog(@"aString  =  %@",aString);34//  Do  something3536dispatch_resume(source);37return source;38}39
    //     总结     //

    虽然上述的几个重定向的方法都能够获取到Log数据,但是弊端是当使用Log重定向之后,连接Xcode进行调试应用程序时,Xcode 的Console中将不会打印任何Log信息,Log信息已经被重定向到了我们指定的文件中了。

    这些方法有一定的局限性,在具体使用的 时候,需要视情况而定。当然还有其他的方式能够即重定向Log数据到指定文件,还能够在Xcode的Console中输出日志(pipe、dup2与GCD的相互协作),这样能够避免调试阶段无法实时查看日志的缺陷,进一步的提高开发调试和优化的效率。

    另外也可以开发一个在桌面或者网页端实时展示Log信息的应用,实时从重定向的位置读取Log信息,达到实时查看信息的目的等。

    相关阅读:

    技术专栏丨iOS虚拟内存管理

    技术专栏丨使用grafana监控spark任务

    技术专栏丨小插件大用途,带你走进IDE插件的世界

    0f1aa4f5efea97b76b1c7cc0c36c1536.png

    82dbad04645921ec40011f7a03e3028e.png

    展开全文
  • 最近发现vb6调用delphi DLL函数并返回字符串时出现问题,有时正常,有时出现?号,有时干脆导致VB程序退出 2019-01-18 13:18:51 将金额数字转化为可读的语音文字:1转化为1元 ????@ 元 ???? og\SS_log.txt .eP...

    1,问题描述 

    最近发现vb6调用delphi DLL中的函数并返回字符串时出现问题,有时正常,有时出现?号,有时干脆导致VB程序退出

    2019-01-18 13:18:51 将金额数字转化为可读的语音文字:1转化为1元 ????@                元  ????    og\SS_log.txt .eP   K      :   

    2,原因分析

    delphi中函数声明如下:

    function ss_ConvertMoney2Str(mmje:double): PChar; stdcall; 

    VB6中对应的函数声明如下:

    Public Declare Function ss_ConvertMoney2Str Lib "SSDuan.dll" (ByVal mmje As Double) As string

     

    因其中涉及字符串从delphi中返回给VB,所以怀疑与内存有关。

    将Sharemem在DLL工程中引用,并在VB程序目录中放入BORLNDMM.dll文件。问题依旧。

     

    在网上查到下面文章,非常详细地说明了调用方法。解决了问题。感谢原作者。

    https://blog.csdn.net/marz07101/article/details/8127351

     

    3,解决方案

    在delphi中增加一个函数声明如下,采用pres返回字符串。

    function ss_ConvertMoney2Str4VB(mmje:double; pres:PChar): integer;  stdcall;

     

    在VB6中,声明接口如下

    Public Declare Function ss_ConvertMoney2Str4VB Lib "xxx.dll" (ByVal mmje As Double, ByVal result As String) As Integer

     

    在调用函数时,第二个实参声明为string,且要事先分配内存。

    Private Sub Command2_Click()
      Dim convMoney As String
      Dim res As Integer
      convMoney = Space(255)
    
      res = ss_ConvertMoney2Str4VB(Val(Text1.Text), convMoney)

     

    转载于:https://www.cnblogs.com/jackkwok/p/10288879.html

    展开全文
  • vb Script参考文档

    2009-07-28 22:13:02
    Log 函数 返回数的自然对数。 LTrim 函数 返回去掉前导空格的字符串副本。 Match 对象 提供访问匹配正则表达式的只读属性。 Matches 集合 正则表达式匹配对象的集合。 Mid 函数 从字符串返回指定数量的字符。 ...
  • 微软 VB2010 源码包

    2013-05-22 02:21:18
    APICalls:演示调用 Win32 API 函数以枚举和控制进程和窗口,以及查询和更改系统设置 arrays:创建 Integer 和 Object 值的数组,并对数组进行排序和搜索 AutoImplementedPropSample:包含两个具有相似源代码的...
  • VB编的电子图书

    2008-05-12 22:16:32
    如果你要改变科学计算,你用鼠标单击电子图书的计算类窗口的上面的“科学计算”的文字,简单计算就变成科学计算,左边是函数按钮,右边是数字按钮,跟简单计算的按钮框差不多。如果你要改变函数按钮,用鼠标...
  • 表达式计算(vb源码)

    2008-09-25 22:13:44
    双击相应的函数名或常数名就可以将函数或常量添加到表达式。 计算过程只能当表达式只有一行时有效。 实例1:计算sqr(19+tan(98)*tan(91)-sin(122)*(5*5-(19-11)))/2 计算过程sqr(19+tan(98)*tan(91)-sin...
  • log4Net详解(共2讲)

    2011-08-16 22:03:25
    估计在不久之后,也可以向VB,C#一样,通过可视化工具拖拽方式即可轻松开发Web应用。 ExtJs在发展过程不仅一步步地巩固着自己在HTML、CSS、JavaScript领域无可比拟的优势,而且已经开始向相关领域发展扩张。如从...
  • MYSQL中文手册

    2013-03-11 21:21:34
    12.10. 与GROUP BY子句同时使用的函数和修改程序 12.10.1. GROUP BY(聚合)函数 12.10.2. GROUP BY修改程序 12.10.3. 具有隐含字段的GROUP BY 13. SQL语句语法 13.1. 数据定义语句 13.1.1. ALTER DATABASE...
  • MySQL 5.1中文手冊

    2009-12-11 09:43:12
    2.7. 在其它类Unix系统安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树安装 2.8.4. 处理MySQL编译问题 2.8.5. MIT-pthreads注意事项 2.8.6. 在Windows下从...
  • 2.7. 在其它类Unix系统安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树安装 2.8.4. 处理MySQL编译问题 2.8.5. MIT-pthreads注意事项 2.8.6. 在Windows下从...
  • 12.10. 与GROUP BY子句同时使用的函数和修改程序 12.10.1. GROUP BY(聚合)函数 12.10.2. GROUP BY修改程序 12.10.3. 具有隐含字段的GROUP BY 13. SQL语句语法 13.1. 数据定义语句 13.1.1. ALTER DATABASE语法 ...
  • mysql5.1中文手册

    2008-01-09 09:54:20
    在其它类Unix系统安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树安装 2.8.4. 处理MySQL编译问题 2.8.5. MIT-pthreads注意事项 ...
  • 统计字母个数

    2012-10-09 18:45:08
    ".LOG"共占四个字节,又置于文档第一行顶格处,因此可以用VB的Left函数来读取这个字符串,如有,则用CStr函数来自动添加时间和日期。 我们可以在打开文件的程序加入以下代码: DimaAsString a=Left(Text1.Text,4)'...
  • 第1 章 VB 2 0 0 8核心元素.......................... 1 1 . I 原来的关键字和语法................... 2 1 . 2 值类型和引用类型........................7 1 . 3 命令:条件语句.........................10 ...
  • VS2008 使用MSCom的问题

    2011-12-30 14:11:00
    一个老的VB 程序,用到了COM 用于输出通讯。现在改成VS2008的,因为本机装过VB6.0. 在工具成功引入了Microsoft ...用记Log的方式详细Dedug后,在Form 构造函数的Init方法.COM那快出错了。在网上搜了一些资料。...

    一个老的VB 程序,用到了COM 用于输出通讯。

    现在改成VS2008的,因为本机装过VB6.0. 在工具中成功引入了Microsoft Communication Control,一切都很顺利。 在本机和同事的机器上都正常运行。

    可是布署到一台测试Server上时,却一点exe文件就出错。

    用记Log的方式详细Dedug后,在Form 构造函数的Init方法中.COM那快出错了。

    在网上搜了一些资料。问题找到了,原来我和同事都正常运行的机器上

    C:\winnt\system32 下有
    Mscomm.srg, Mscomm32.ocx,Mscomm32.dep

    这三个文件。且已经注册过了,因为是装过vb6.0.

    而测试机上没有安装过vb6.0.

     做法如下:

    做法:

     第一步:将Mscomm.srg, Mscomm32.ocx,Mscomm32.dep三个文件复制到系统文件夹中。要注意的是,

    MSComm控件是要授权的,所以必须将其使用“执照”Licence 在注册表中登记注册,下一步就是注册方法。至

    于为什么要这样做,可以看看下面的网页:http://support.microsoft.com/support/kb/articles/q151/7/71.asp
      
     第二步:用Windows下的注册工具regsvr32注册该OCX控件,点击“开始”->"运行",再在中填入(假设操

    作安装在C盘,WIN2000):

    Regsvr32 C:\winnt\system32\Mscomm32.ocx
     
     第三步:在注册表中手工新建一个主键项:先在点击“开始”->"运行",再在中填入regedit命令打开注册表,

    找到HKEY_CLASSES_ROOT\Licenses,在其中添加主键

    4250E830-6AC2-11cf-8ADB-00AA00C00905 并将内容设置为:

           kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun

       (注:这项内容也可以用记事本程序打开Mscomm.srg文件看到)
     三步做完,成功打开运行!

    转载于:https://www.cnblogs.com/andycai/archive/2011/12/30/2307430.html

    展开全文
  • 2.7. 在其它类Unix系统安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树安装 2.8.4. 处理MySQL编译问题 2.8.5. MIT-pthreads注意事项 2.8.6. 在Windows下从...
  • MySQL 5.1参考手册.chm

    2011-12-07 13:53:37
    12.10. 与GROUP BY子句同时使用的函数和修改程序 12.10.1. GROUP BY(聚合)函数 12.10.2. GROUP BY修改程序 12.10.3. 具有隐含字段的GROUP BY 13. SQL语句语法 13.1. 数据定义语句 13.1.1. ALTER DATABASE语法 ...
  • 12.10. 与GROUP BY子句同时使用的函数和修改程序 12.10.1. GROUP BY(聚合)函数 12.10.2. GROUP BY修改程序 12.10.3. 具有隐含字段的GROUP BY 13. SQL语句语法 13.1. 数据定义语句 13.1.1. ALTER DATABASE语法 ...
  • 2.7. 在其它类Unix系统安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树安装 2.8.4. 处理MySQL编译问题 2.8.5. MIT-pthreads注意事项 2.8.6. 在Windows下从...
  • MySQL 5.1参考手册

    2010-04-20 22:02:50
    12.10. 与GROUP BY子句同时使用的函数和修改程序 12.10.1. GROUP BY(聚合)函数 12.10.2. GROUP BY修改程序 12.10.3. 具有隐含字段的GROUP BY 13. SQL语句语法 13.1. 数据定义语句 13.1.1. ALTER DATABASE语法 ...
  • 2.7. 在其它类Unix系统安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树安装 2.8.4. 处理MySQL编译问题 2.8.5. MIT-pthreads注意事项 2.8.6. 在...
  • SmartPrinter

    2010-11-17 11:01:07
    只需几行代码更可在后台完全繁琐的转换工作,文件转换过程让您体验其难以想像的速度。 强烈推荐:各类文档转换服务器或传真服务器,对打印速度和图象质量要求极高的场合下使用! 二. 安装包含主要内容 1:...
  • rar压缩软件.rar

    2016-02-13 10:52:44
    RAR 是一个让你在命令行模式管理压缩文件的控制台应用。RAR 提供压缩、加 密、数据恢复和许多其它此手册描述的其它功能。 RAR 只支持 RAR 格式压缩文件,它默认有 .rar 扩展名。不支持ZIP 和其他格 式。即使...
  • asp.net知识库

    2015-06-18 08:45:45
    OraclePL/SQL单行函数和组函数详解 mssql+oracle Oracle编程的编码规范及命名规则 Oracle数据库字典介绍 0RACLE的字段类型 事务 CMT DEMO(容器管理事务演示) 事务隔离性的一些基础知识 在组件之间实现事务和异步...
  • vc++ 应用源码包_2

    2012-09-15 14:27:40
    代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...
  • vc++ 应用源码包_1

    2012-09-15 14:22:12
    代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...
  • vc++ 应用源码包_6

    2012-09-15 14:59:46
    代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...
  • vc++ 应用源码包_5

    2012-09-15 14:45:16
    代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...

空空如也

空空如也

1 2
收藏数 39
精华内容 15
热门标签
关键字:

vb中log函数