我正在将一些32位兼容代码转换为64位 - 我遇到了麻烦.我正在编译VS2008 x64项目,我收到此警告:
warning C4334: '<<' : result of 32-bit shift implicitly converted to 64 bits
(was 64-bit shift intended?)
Run Code Online (Sandbox Code Playgroud)
这是原始的代码行:
if ((j & (1 << k)) != 0) {
Run Code Online (Sandbox Code Playgroud)
如果我遵循微软的建议,这就是它的样子:
if ((j & (1i64 << k)) != 0) {
Run Code Online (Sandbox Code Playgroud)
当代码将在32位和64位系统上编译时,这样做是否安全?如果是这样,请解释为什么我必须添加"i64"到底,以及为什么这不会影响32位编译.否则,将非常感谢解决方案.
除此之外,我看起来像是一个更棘手的代码.
if (id[j] != id[j ^ (1u << k)]) {
Run Code Online (Sandbox Code Playgroud)
我理解"u"意味着数字是无符号的,但是在一个不超过有符号最大值的值上指定的是什么......我猜这与位移有关?
我在c#中有一个三个List,变量名是l_lstData1, l_lstData2, l_lstData3.
文件结构是
<FileDetails>
<Date FileModified="29/04/2010 12:34:02" />
<Data Name="Data_1" DataList="India" Level="2" />
<Data Name="Data_2" DataList="chennai" Level="2" />
<Data Name="Data_3" DataList="hyderabad" Level="2" />
<Data Name="Data_4" DataList="calcutta" Level="2" />
<Data Name="Data_5" DataList="vijayawada" Level="1" />
<Data Name="Data_6" DataList="cochin" Level="1" />
<Data Name="Data_7" DataList="madurai" Level="0" />
<Data Name="Data_8" DataList="trichy" Level="0" />
</FileDetails>
Run Code Online (Sandbox Code Playgroud)
3个列表的值如下:
l_lstData1[0] = "India";
l_lstData1[1] = "chennai";
l_lstData1[2] = "hyderabad";
l_lstData1[3] = "calcutta";
Run Code Online (Sandbox Code Playgroud)
所以上面的XML(element:Data)的level属性值="2".
l_lstData2[0] = "vijayawada";
l_lstData2[1] = "cochin";
Run Code Online (Sandbox Code Playgroud)
所以上面的XML(element:Data)的level属性值="1".
l_lstData3[0] = "madurai";
l_lstData3[1] = "trichy";
Run Code Online (Sandbox Code Playgroud)
所以上面的XML(element:Data)的level属性值为"0".
我知道我可以分析我的代码gprof和kprofLinux上.在Windows上是否有与这些应用程序相当的替代方案?
我不是java和C#的新手.我以为我理解变量范围的概念直到最近我在一次采访中被问到这个问题:
public class Q{ //starting y scope
static int x = 11;
private int y = 33; // Just added a “private” modifier to make it clearer.
public static void main(String args[]){
Q q = new Q();
q.call(5);
}
public void call(int x){
Q q = new Q();
this.x = 22;
y = 44;
System.out.println("Output: " + Q.x);
System.out.println("Output: " + q.x);
System.out.println("Output: " + q.y);
}
} //ending y scope
Run Code Online (Sandbox Code Playgroud)
定义此程序的输出.
我在采访中回答了这个问题,输出结果是运行时异常.根据我的理解,y被声明为private,而实例方法call()正试图访问另一个Q类实例的实例私有变量y.怎么会发生这种情况!?然而,错误地回答这个问题并没有太多影响我的采访,因为这是一种"棘手的基本"问题.但是,错误地回答意味着我多年的Java经验需要康复,这太糟糕了!
有人可以帮我解决这个问题吗?我将非常感激!
在我的项目中,我依赖于几个依赖于.NET各种版本的外部库xml-apis。如果我maven-enforcer-plugin 曾经在版本冲突时失败,则我的构建失败。
在开始之前,打印正在运行的应用程序的类路径可以 xml-apis:xml-apis:1.4.01
启用后,maven-enforcer-plugin我得到了预期的结果
Dependency convergence error for xml-apis:xml-apis:1.3.04 paths to dependency are:
+-org.bbraile:bbraile:1.0-SNAPSHOT
+-org.bbraile:utd:1.0-SNAPSHOT
+-xalan:xalan:2.7.2
+-xalan:serializer:2.7.2
+-xml-apis:xml-apis:1.3.04
and
+-org.bbraile:bbraile:1.0-SNAPSHOT
+-org.bbraile:utd:1.0-SNAPSHOT
+-xml-apis:xml-apis:1.4.01
and
+-org.bbraile:bbraile:1.0-SNAPSHOT
+-org.bbraile:utd:1.0-SNAPSHOT
+-xerces:xercesImpl:2.11.0
+-xml-apis:xml-apis:1.4.01
and
+-org.bbraile:bbraile:1.0-SNAPSHOT
+-com.io7m.xom:xom:1.2.10
+-xml-apis:xml-apis:1.3.03
and
+-org.bbraile:bbraile:1.0-SNAPSHOT
+-org.apache.xmlgraphics:batik-transcoder:1.7
+-org.apache.xmlgraphics:batik-bridge:1.7
+-org.apache.xmlgraphics:batik-anim:1.7
+-xml-apis:xml-apis:1.3.04
and
+-org.bbraile:bbraile:1.0-SNAPSHOT
+-org.apache.xmlgraphics:batik-transcoder:1.7
+-org.apache.xmlgraphics:batik-bridge:1.7
+-org.apache.xmlgraphics:batik-css:1.7
+-xml-apis:xml-apis:1.3.04
and
+-org.bbraile:bbraile:1.0-SNAPSHOT
+-org.apache.xmlgraphics:batik-transcoder:1.7
+-org.apache.xmlgraphics:batik-bridge:1.7
+-org.apache.xmlgraphics:batik-ext:1.7
+-xml-apis:xml-apis:1.3.04
and
+-org.bbraile:bbraile:1.0-SNAPSHOT
+-org.apache.xmlgraphics:batik-transcoder:1.7
+-org.apache.xmlgraphics:batik-bridge:1.7
+-xml-apis:xml-apis:1.3.04
and
+-org.bbraile:bbraile:1.0-SNAPSHOT
+-org.apache.xmlgraphics:batik-transcoder:1.7
+-org.apache.xmlgraphics:batik-dom:1.7
+-xml-apis:xml-apis:1.3.04
and
+-org.bbraile:bbraile:1.0-SNAPSHOT
+-org.apache.xmlgraphics:batik-transcoder:1.7
+-org.apache.xmlgraphics:batik-gvt:1.7
+-xml-apis:xml-apis:1.3.04
and
+-org.bbraile:bbraile:1.0-SNAPSHOT
+-org.apache.xmlgraphics:batik-transcoder:1.7
+-org.apache.xmlgraphics:batik-svg-dom:1.7
+-xml-apis:xml-apis:1.3.04
and
+-org.bbraile:bbraile:1.0-SNAPSHOT
+-org.apache.xmlgraphics:batik-transcoder:1.7
+-org.apache.xmlgraphics:batik-svggen:1.7 …Run Code Online (Sandbox Code Playgroud) 我得到了奇怪的编译时错误:
项目文件必须在参考列表中包含.NET Framework程序集"WindowsBase,PresentationCore,PresentationFramework".
这个项目是aspnet mvc web应用程序,很长一段时间都很好.
在我添加它们之后,Build很好,但是这可能是造成这个错误的原因?
我需要在Python中解析文件.xsd,因为我将解析XML.
我使用的是libxml2.
我必须解析一个看起来如下的xsd:
<xs:complexType name="ClassType">
<xs:sequence>
<xs:element name="IeplcHeader">
<xs:complexType>
<xs:sequence>
<xs:element name="device-number" type="xs:integer" fixed="1"/>
</xs:sequence>
<xs:attribute name="version" type="xs:integer" use="required" fixed="0"/>
</xs:complexType>
</xs:element>
Run Code Online (Sandbox Code Playgroud)
当我访问
doc.xpathEval('//xs:complexType/xs:sequence/xs:element[@name="IeplcHeader"]'):
Run Code Online (Sandbox Code Playgroud)
告诉我,找不到路径.
如果我删除所有的xs:如下
<complexType name="ClassType">
<sequence>
<element name="IeplcHeader">
<complexType>
<sequence>
<element name="device-number" type="xs:integer" fixed="1"/>
</sequence>
<attribute name="version" type="xs:integer" use="required" fixed="0"/>
</complexType>
</element>
Run Code Online (Sandbox Code Playgroud)
以这种方式它的工作原理
doc.xpathEval('//complexType/sequence/element[@name="IeplcHeader"]'):
Run Code Online (Sandbox Code Playgroud)
有谁知道我怎么能读到修复前缀这个问题?现在我正在准备删除xs的文件:但这是一个糟糕的解决方案,我真的希望能够找到更好的解决方案.
(我没有尝试使用py-dom-xpath,我不知道是否可以使用xs :)
谢谢,ste
我正在寻找EDIFACT和X12中至少一个显示二进制机箱的示例文件.
EDIFACT应包括UNO/UNP段中包含的数据,X12需要使用二进制段BIN或BDS之一.
感谢您的任何帮助,您可以提供.
我试图在某个网页的正文中阅读以显示在一个单独的网页上,但我遇到了一些麻烦.现在,我使用以下代码
<?php
@$doc = new DOMDocument();
@$doc->loadHTMLFile('http://foo.com');
@$tags = $doc->getElementsByTagName('body');
foreach ($tags as $tag) {
$index_text .= $tag->nodeValue;
print nl2br($tag->nodeValue).'<br />';
}
?>
Run Code Online (Sandbox Code Playgroud)
这段代码有效,但它似乎删除了很多格式,这对我来说很重要,比如换行符.我如何阻止这种情况发生
我将一个编辑框控件子类化为
lpfnOldWndProc = (FARPROC)SetWindowLong(hEdit,GWL_WNDPROC, (DWORD)SubClassFunc);
LRESULT FAR PASCAL SubClassFunc( HWND hWnd,
UINT Message,
WPARAM wParam,
LPARAM lParam)
{
switch(Message)
{
case WM_CHAR:
//Process this message to avoid message beeps.
if ((wParam == VK_RETURN) || (wParam == VK_TAB))
{
//Do Something
return 0;
}
break;
case WM_KEYDOWN:
if ((wParam == VK_RETURN) || (wParam == VK_TAB)) {
//Do Something
return 0;
}
break ;
default:
break;
}
return CallWindowProc((WNDPROC)lpfnOldWndProc, hWnd, Message, wParam, lParam);
}
Run Code Online (Sandbox Code Playgroud)
现在,当我在editbox中输入char时,将调用此子类程序.但是当按下回车键时我无法得到它.
在上述程序中这是错误的吗?