我最近意识到,从通用角度来说,我不知道ac/c ++编译器是如何工作的.我会承认这最初来自于试图理解标题保护,但我意识到我缺乏编译工作.
以Visual C++为例; 有"Header Files"文件夹,"Resources Files"文件夹和"Source Files"文件夹.这些文件夹的分离和放在它们中的内容有什么意义吗?对我来说,它们都是源文件.拿代码片段:
//a1.h
int r=4;
Run Code Online (Sandbox Code Playgroud)
和
//a1.cpp
int b //<--semicolon left out on purpose
Run Code Online (Sandbox Code Playgroud)
和
//main.cpp
#include <iostream>
#include "a1.h"
void main()
{
cout << r;
}
Run Code Online (Sandbox Code Playgroud)
编译器错误地说"a1.cpp(3):致命错误C1004:发现意外的文件结尾"我认为它不会因为a1.cpp文件不是#included主要方法存在于哪里下一个代码段
//a1.h
int r=4 //<--semicolon left out on purpose
Run Code Online (Sandbox Code Playgroud)
和
//a1.cpp
int b = 4;
Run Code Online (Sandbox Code Playgroud)
和
//main.cpp
#include <iostream>
void main()
{
cout << b;
}
Run Code Online (Sandbox Code Playgroud)
错误,因为"main.cpp(6):错误C2065:'b':未声明的标识符".如果像这样包含a1.cpp
//a1.h
int r=4 //<--semicolon left out on purpose
Run Code Online (Sandbox Code Playgroud)
和
//a1.cpp
int b = 4;
Run Code Online (Sandbox Code Playgroud)
和
//main.cpp
#include …Run Code Online (Sandbox Code Playgroud) entrym='entry'
entrym=entrym+ str(idx)
cursor.execute("INSERT INTO im_entry.test ("+entrym+") VALUES ('"+p+"');")
Run Code Online (Sandbox Code Playgroud)
我正在使用这样的查询,其中entry1,entry2等等是我的数据库表.该程序不显示任何错误,但该p值不会插入数据库中.这有什么不对?请帮我.
我希望我的velocityengine从设计的路径中寻找模板.我这样做了:
<bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
<property name="velocityProperties">
<value>
resource.loader=class
class.resource.loader.class=org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
class.resource.loader.resourceLoaderPath=/mytemplates
</value>
</property>
Run Code Online (Sandbox Code Playgroud)
但仍在类文件夹中查找模板.任何的想法?
Visual Studio 2010具有许多与C++标准相关的扩展(默认激活)/差异.
这种差异可能令人惊讶,并引发与其他行为不同的行为.VS因在模板代码验证方面非常宽松而着名,并且VS接受和编译的模板代码通常会被更兼容的编译器(CLang,Comeau,icc,gcc,......等等)彻底拒绝.
这个问题的目标是为这些差异提供参考(因此FAQ标签).
请根据差异(检查重复)和每个答案提供一个答案:
注意:C++ 0x是下一个标准,因此请避免列出C++ 0x扩展,因为它们很快就会成为标准
来自@Matteo Italia:Visual Studio合规性页面
我有一个输入框,人们输入一个字体,它保存了他们键入的JPEG格式.一切正常.但是,当他们键入一个字体名称,如' times new roman'它必须正确地大写' Times New Roman'或它不会工作!
我可以以某种方式迭代所有可用的字体并将其作为下拉列表呈现给它们,这样就没有拼写问题,它们肯定只会在系统上使用字体吗?
所以我正在实现一个上/下投票机制,我正在生成一个模型.到目前为止,我知道视频(将被投票的内容)有一个vote_count,而vote_count属于视频.但是,我还想在我的vote_count数据库中跟踪投票的用户.这是否意味着vote_count有很多用户,而用户属于vote_count?
这是一个新手问题,但我想我真的不明白最佳做法是什么.
基本上,我有一个名为"emailScan"的方法,它会扫描以查看数据库中是否已存在电子邮件.这可能会导致三种可能的结果:
问题是,这种方法应该返回什么?我的想法:
有什么想法吗?
我想用:
function list(args);
Run Code Online (Sandbox Code Playgroud)
但这list是一个保守的词.
我可以从PHP中删除列表功能,禁用它,还是以其他方式?
这是我的数组(gawk脚本):
myArray["peter"] = 32
myArray["bob"] = 5
myArray["john"] = 463
myArray["jack"] = 11
Run Code Online (Sandbox Code Playgroud)
排序后,我需要以下结果:
bob 5
jack 11
peter 32
john 463
Run Code Online (Sandbox Code Playgroud)
当我使用"asort"时,索引会丢失.如何按数组值排序而不丢失索引?(我需要根据它们的值排序索引)
(我需要仅使用awk/gawk获取此结果,而不是shell脚本,perl等)
如果我的帖子不够清楚,这里有另一篇文章解释同一个问题:http://www.experts-exchange.com/Programming/Languages/Scripting/Shell/Q_26626841.html)
提前致谢
更新:
多亏了你们两个,但我需要按值排序,而不是索引(我希望根据它们的值排序索引).
换句话说,我需要这个结果:
bob 5
jack 11
peter 32
john 463
Run Code Online (Sandbox Code Playgroud)
不是:
bob 5
jack 11
john 463
peter 32
Run Code Online (Sandbox Code Playgroud)
(我同意,我的例子令人困惑,选择的价值非常糟糕)
从Catcall的代码中,我编写了一个可行的快速实现,但它相当难看(我在排序和分割之前将键和值连接在一起).这是它的样子:
function qsort(A, left, right, i, last) {
if (left >= right)
return
swap(A, left, left+int((right-left+1)*rand()))
last = left
for (i = left+1; i <= right; i++)
if (getPart(A[i], …Run Code Online (Sandbox Code Playgroud) 我编写了一个程序,从Crystal Report生成PDF,然后将这些PDF通过电子邮件发送给某人.该程序在我的开发机器上运行良好,但是当我将bin\Release目录复制到Windows 2000 Server(我想运行它的机器)时,它开始运行然后生成此错误和堆栈跟踪:
The type initializer for 'CrystalDecisions.CrystalReports.Engine.ReportDocument' threw an exception.
at CrystalDecisions.CrystalReports.Engine.ReportDocument..ctor()
at DailyJobCostSummaryEmail.Program.crptToPDF(String reportFile, String jobNum, String outputLocation) in M:\Projects\DailyJobCostSummaryEmail\DailyJobCostSummaryEmail\Program.cs:line 79
at DailyJobCostSummaryEmail.Program.Main(String[] args) in M:\Projects\DailyJobCostSummaryEmail\DailyJobCostSummaryEmail\Program.cs:line 46
Run Code Online (Sandbox Code Playgroud)
除了从可视工作室运行外,其他任何地方都会出现错误.
.Net 2.0安装在那台机器上,我已经安装了CRRedist2005_x86.msi而没有任何效果.我甚至得到了"向Microsoft发送错误报告"对话框,即使我正在使用try/catch将异常打印到文件中.即使执行了catch块,我的程序也无法正常关闭.
static void Main(string[] args)
{
try
{
String dir = @"JobCostReports";
DataTable jobs = new DataTable();
using (SqlConnection conn = new SqlConnection(connString))
{
String sql = "JC_GetJobsClosedYesterday";
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
da.Fill(jobs);
}
List<String> files = new List<String>();
foreach (DataRow row in jobs.Rows)
{
files.Add(crptToPDF(@"JobCost.rpt", …Run Code Online (Sandbox Code Playgroud)