在编程中,当我们说"第7个最低有效位"时,我们是否有一个标准,无论是第7位还是第6位(如果我们从第0位开始).
因为如果我们说"第二最低有效位",它听起来像是位1(再次从位0开始计数),所以如果第二位意味着位1,那么第7位意味着第6位,而不是第7位.
以下两个声明之间的区别是什么?我认为它们是等价的,但第一个样本有效,第二个没有.我的意思是它编译并运行,但位图显示代码显示为空白.我还没有介入它,但我错过了一些明显的东西吗?GUI_BITMAP是一个描述位图的简单结构.这适用于VC++ 2005,但我认为它在VC++ 2008中也失败了.抓住这个......
样本1:
extern "C" const GUI_BITMAP bmkeyA_cap_active;
extern "C" const GUI_BITMAP bmkeyA_cap_inactive;
Run Code Online (Sandbox Code Playgroud)
样本2:
extern "C"
{
const GUI_BITMAP bmkeyA_cap_active;
const GUI_BITMAP bmkeyA_cap_inactive;
};
Run Code Online (Sandbox Code Playgroud)
编辑:更多的探索表明第二个例子是创建结构,而第一个例子是指外部结构.第二个示例无法链接,因为全局范围内有两个具有相同名称的变量.但事实并非如此,它会向放弃的显示代码发送零填充结构.嗯.....
编辑2:通过另一个编译器(IAR)运行相同的代码实际上无法在示例2上编译,但错误的是缺少默认构造函数.所以我猜测有一些关于"extern"关键字,结构和C++的细微之处,我没有得到.如果外部区域的东西是功能,那么两个样本是否相同?
我有一个RichTextBox,我每次单击一个Form按钮时都会写一个字符串.每个字符串以字符串"Long"或"Short"开头,以换行符结束.每次添加字符串时,它都会附加到RichTextBox的底部.如果它是"长"的话,我想把每一行的颜色涂成红色,如果它以"短"的形式开始,我想把它变成蓝色.我怎样才能做到这一点?
我使用v2进行了演示,现在我想使用v3.
但我发现v3没有v2那么多的方法,例如:
map.enableGoogleBar();
map.enableScrollWheelZoom();
polyline.enableDrawing()
那么,v3强大到足以取代v2 ???
我有一些像这样的颜色结构的代码
public void ChangeColor()
{
thisColor.R = thisColor.R + 5;
}
Run Code Online (Sandbox Code Playgroud)
现在我需要创建一个方法,根据传递的内容更改不同的变量.这是代码现在的样子.
public void ChangeColor(int RGBValue)
{
switch(RGBValue)
{
case 1:
thisColor.R = thisColor.R + 5;
break;
case 2:
thiscolor.B = thisColor.B + 5;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,这是我通常不会质疑的东西,我只是在它周围抛出一个#region语句并称之为一天,但这只是我所拥有的一个例子,实际的功能很长.
我希望它看起来像这样:
public void ChangeColor(int RGBValue)
{
thiscolor.RGBValue = thiscolor.RGBValue;
}
Run Code Online (Sandbox Code Playgroud)
因此,该值基本上是指所使用的变量.这有名字吗?这是反射的意义吗?或类似的东西......有没有办法做到这一点?
我在研究中遇到的反复分析范例是需要根据所有不同的组id值进行子集,依次对每个组进行统计分析,并将结果放在输出矩阵中以便进一步处理/总结.
我通常在R中执行此操作的方式如下:
data.mat <- read.csv("...")
groupids <- unique(data.mat$ID) #Assume there are then 100 unique groups
results <- matrix(rep("NA",300),ncol=3,nrow=100)
for(i in 1:100) {
tempmat <- subset(data.mat,ID==groupids[i])
# Run various stats on tempmat (correlations, regressions, etc), checking to
# make sure this specific group doesn't have NAs in the variables I'm using
# and assign results to x, y, and z, for example.
results[i,1] <- x
results[i,2] <- y
results[i,3] <- z
}
Run Code Online (Sandbox Code Playgroud)
这最终为我工作,但根据数据的大小和我正在使用的组的数量,这可能需要长达三天.
除了分支到并行处理之外,还有什么"技巧"可以让这样的东西运行得更快吗?例如,将循环转换为其他东西(类似于使用包含我想在循环中运行的统计数据的函数的应用),或者不需要实际将数据子集分配给变量?
也许这只是常识(或抽样错误),但我尝试在我的一些代码中使用括号进行子集化而不是使用子命令,它似乎提供了一些让我感到惊讶的性能提升.我使用了一些代码并使用与上面相同的对象名称输出如下:
system.time(for(i in 1:1000){data.mat[data.mat$ID==groupids[i],]})
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)user system …
我正在为Windows开发一个仅限英语的C++程序,我们被告知"总是使用std :: wstring",但似乎团队中的任何人都没有太多理解.
我已经阅读了标题为"std :: wstring VS std :: string.的问题.这非常有用,但我仍然不太明白如何将所有这些信息应用到我的问题中.
我正在处理的程序在Windows GUI中显示数据.该数据以XML格式保存.我们经常使用XSLT将XML转换为HTML或XSL:FO以用于报告目的.
根据我所读到的内容,我的感觉是HTML应编码为UTF-8.我对GUI开发知之甚少,但我读到的一点点表明GUI内容都是基于UTF-16编码的字符串.
我想知道这会让我离开的地方.假设我们认为所有持久化数据都应该是UTF-8编码的XML.这是否意味着为了在UI组件中显示持久化数据,我应该真正执行某种明确的UTF-8到UTF-16转码过程吗?
我怀疑我的解释可以使用澄清,所以如果你有任何问题,我会尝试提供.
我的Java应用程序有一个类似于这样的包结构:
src/com/name/app
src/com/name/app/do
src/com/name/utils/db
Run Code Online (Sandbox Code Playgroud)
我如何将这些目录中的Java文件编译到可运行的jar中?我需要将所需的库打包到生成的JAR(jdbc)中.
我总是在Eclipse中完成这些工作,但现在我需要为几个人提供一种编译存储库而不使用eclipse的方法,我正在考虑制作一个makefile或一个调用必要的javac模式的脚本.
我对COM很新,所以这个问题可能看起来很幼稚.
Q1.关于Windows DLL
根据我的理解,Windows DLL可以导出函数,类型(类)和全局变量.这种理解是否正确?
Q2.关于COM
我天真的理解是:COM DLL似乎只是一种新的逻辑方式来组织标准Windows DLL导出的函数和类型.COM DLL导出两个函数,如DllRegisterServer()和DllGetClassObject(),以及实现IUnknown接口的类.这种理解是否正确?
Q3.*.def&*.idl
*.def用于定义Windows DLL以传统方式导出的函数,例如DllGetClassObject().*.idl用于定义COM coclass实现的接口.
提前致谢.
c++ ×3
c# ×2
api ×1
com ×1
data.table ×1
dll ×1
extern ×1
google-maps ×1
java ×1
javac ×1
javascript ×1
keyword ×1
loops ×1
makefile ×1
osdev ×1
packages ×1
performance ×1
r ×1
readability ×1
richtextbox ×1
subset ×1
unicode ×1
utf-16 ×1
utf-8 ×1
visual-c++ ×1
winforms ×1
wstring ×1