//定义内存的信息结构
[StructLayout(LayoutKind.Sequential)]
public struct MEMORY_INFO
{
public uint dwLength;
public uint dwMemoryLoad;
public uint dwTotalPhys;
public uint dwAvailPhys;
public uint dwTotalPageFile;
public uint dwAvailPageFile;
public uint dwTotalVirtual;
public uint dwAvailVirtual;
}
[DllImport("kernel32")]
private static extern void GlobalMemoryStatus(ref MEMORY_INFO meminfo);

  此方法在C#中调用时,调用之前声明的变量会被释放掉,放在其他变量使用后调用,具体原因空了找

        private static void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
timer.Stop();
i++; MEMORY_INFO MemInfo = new MEMORY_INFO();
GlobalMemoryStatus(ref MemInfo); List<HardDriver> hardDrivers = new List<HardDriver>(); DriveInfo[] drives = DriveInfo.GetDrives().Where(a => a.DriveType == DriveType.Fixed).ToArray();
foreach (var item in drives)
{
hardDrivers.Add(new HardDriver()
{
name = item.Name,
cap_all = (1.0 * item.TotalSize / 1024.0 / 1024.0 / 1024.0).ToString() + "GB",
cap_avi = (1.0 * item.AvailableFreeSpace / 1024.0 / 1024.0 / 1024.0).ToString() + "GB",
});
} var cpt = new ComputerLog()
{
server_name = server_name,
}; cpt.cpu = 0;
cpt.net_in = "";
cpt.net_out = "";
cpt.drives = hardDrivers.ToArray(); cpt.mem = MemInfo.dwMemoryLoad.ToString() + "%";
cpt.mem_avi = ConvertBytes(MemInfo.dwTotalPageFile.ToString(), 3).ToString() + "GB"; Console.Clear();
//Console.WriteLine($"{i.ToString()} cpt.mem:{cpt.mem} cpt.mem_avi:{cpt.mem_avi}"); Console.WriteLine(i.ToString() + "/r/n" + JsonConvert.SerializeObject(cpt));
//Monitor.logComputer(cpt); timer.Start();
}

  

C++动态链接库方法调用的更多相关文章

  1. [原创]VS2010中创建动态链接库及其调用

    [原创]VS2010中创建动态链接库及其调用 一.创建动态链接库 在VS2010中创建动态链接库的步骤如下: 1)生成->编译->生成MyDll 二.调用 当调用DLL中的方法,程序编译产 ...

  2. 第47篇-解释执行的Java方法调用native方法小实例

    举个小实例,如下: public class TestJNI { static { // 程序在加载时,自动加载libdiaoyong.so库 System.loadLibrary("dia ...

  3. 用CIL写程序:从“call vs callvirt”看方法调用

    前文回顾:<用CIL写程序系列> 前言: 最近的时间都奉献给了加班,距离上一篇文章也有半个多月了.不过在上一篇文章<用CIL写程序:定义一个叫“慕容小匹夫”的类>中,匹夫和各位 ...

  4. 图解JVM执行引擎之方法调用

    一.方法调用 方法调用不同于方法执行,方法调用阶段的唯一任务就是确定被调用方法的版本(即调用哪一个方法),暂时还不涉及方法内部的具体运行过程.Class文件的编译过程中不包括传统编译器中的连接步骤,一 ...

  5. Struts2学习笔记 - Action篇<动态方法调用>

    有三种方法可以使一个Action处理多个请求 动态方法调用DMI 定义逻辑Acton 在配置文件中使用通配符 这里就说一下Dynamic Method nvocation ,动态方法调用,什么是动态方 ...

  6. Atitit. 构造ast 语法树的总结attilax oao 1. Ast结构树形12. ast view (自是个160k的jar )22.1. 多条语句ast结构22.2. 变量定义 int b,c; 的ast结构22.3. 方法调用meth1(a=1,b=2,c=3);  的ast结构23. 误解的问题33.1. 语法书子能是个二叉树,实际上多叉树越好..33.2. 非要不个ast放到个s

    Atitit. 构造ast 语法树的总结attilax oao 1. Ast结构树形1 2. ast view (自是个160k的jar )2 2.1. 多条语句ast结构2 2.2. 变量定义 in ...

  7. 第三章Struts2 Action中动态方法调用、通配符的使用

    01.Struts 2基本结构 使用Struts2框架实现用登录的功能,使用struts2标签和ognl表达式简化了试图的开发,并且利用struts2提供的特性对输入的数据进行验证,以及访问Servl ...

  8. Struts2 动态方法调用

    01.Struts 2基本结构 使用Struts2框架实现用登录的功能,使用struts2标签和ognl表达式简化了试图的开发,并且利用struts2提供的特性对输入的数据进行验证,以及访问Servl ...

  9. AsyncTask内的各个方法调用顺序

    |- AsyncTask内的各个方法调用顺序:|- 首先,用户调用execute方法,启动AsyncTask .然后在execute方法中:|- 首先调用onPreExecute方法,执行初始化操作. ...

随机推荐

  1. C# 反射及应用

    一.什么是反射 反射(Reflection)可以在运行时获 得.NET中每一个类型(包括类.结构.委托.接口和枚举等)的成员,包括方法.属性.事件,以及构造函数等.还可以获得每个成员的名称.限定符和参 ...

  2. iis设置http重置到https

    http://www.cnblogs.com/tangge/p/4259749.html 1.购买SSL证书,参考:http://www.cnblogs.com/yipu/p/3722135.html ...

  3. js缓存问题的解决

  4. Java面试2018常考题目汇总

    一.JAVA基础篇-概念 1.简述你所知道的Linux: Linux起源于1991年,1995年流行起来的免费操作系统,目前, Linux是主流的服务器操作系统, 广泛应用于互联网.云计算.智能手机( ...

  5. JAVAEE 第六周

    JSF 生命周期: FacesServlet 充当用户和 JSF 应用程序之间的纽带.它在明确限定的 JSF 生命周期(规定了用户请求之间的整个事件流)的范围内工作. 1.   当JSF页面上的一个事 ...

  6. thinkPHP验证码不显示问题

    使用验证码的时候,不显示图片时,要清理下输出缓存:ob_clean_end();

  7. Java泛型之自限定类型

    在<Java编程思想>中关于泛型的讲解中,提到了自限定类型: class SelfBounded<T extends SelfBounded<T>> 作者说道: 这 ...

  8. effective_java 第34条:用接口模拟可伸缩的枚举

    例如: /** * 加减乘除枚举 * Created by yulinfeng on 8/20/17. */ public enum Operation { PLUS { double apply(d ...

  9. 自学python之路(day3)

    基础数据类型---字符串str 1.字符串的索引和切片 索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推. a = 'ABCDEFGH' print(a[0]) print(a[1] ...

  10. 泊爷带你学go -- redis连接池的操作

    package main import ( "common" "fmt" "proto" "strconv" " ...