问题列表 - 第12277页

预编译标题

我有一个示例项目(不是我的)在Visual C++ 6中.我正在尝试将其转换为Visual Studio 2008.

旧项目使用预编译头.现在的问题是:

  1. 什么是预编译头文件?

  2. 由于旧项目使用预编译头.我还将在Visual Studio 2008(新项目)中使用它们.但我得到的错误是"你忘了包含stdafx.h",为了解决这个问题,我在每个源文件中加入了"stdafx.h".这非常有效.但是旧项目在每个文件中都没有包含"stdafx.h"?那么如何选择退出在每个源文件中包含"stdafx.h".因为不是每个源文件都需要"stdafx.h"中定义的包含文件,所以只有少数文件.怎么做的?

编辑: 如何使用预先设定的标题来解释某些文件?

visual-c++-6 precompiled-headers visual-studio-2008

31
推荐指数
2
解决办法
2万
查看次数

为什么我不能在Perl的require中使用表达式来构建类名?

假设模块AAA::BBB::CCC位于~/modules/AAA/BBB/CCC.pm,并且" ~/modules"处于@INC,那么为什么以下代码不起作用并导致编译错误?

$class = "AAA::BBB" ;
$type = "CCC";
require $class . '::' . $type ;
Run Code Online (Sandbox Code Playgroud)

我尝试使用require AAA::BBB::CCC,它可以工作.如果我确实需要通过将字符串组合在一起来动态地需要模块而不是直接对模块名称进行硬编码,我该怎么办?

谢谢

perl

0
推荐指数
3
解决办法
380
查看次数

字符串到变量名称

我有类(Customer),它包含200多个字符串变量作为属性.我正在使用带有键和值参数的方法.我试图从xml文件提供密钥和值.为此,必须使用Customer类的属性(字符串变量)替换值.

Customer
{
  public string Name{return _name};

  public string Address{return _address};
}


CallInput
{
  StringTempelate tempelate = new StringTempelate();
  foreach(item in items)
  tempelate .SetAttribure(item.key, item.Value -->   //Say this value is Name, so it has to substitute Customer.Name
}
Run Code Online (Sandbox Code Playgroud)

可能吗?

c#

15
推荐指数
3
解决办法
4万
查看次数

Rails:智能文本截断

我想知道是否有一个插件可以实现一种智能截断.我需要用一个单词或一个句子的精度来截断我的文本.

例如:

Post.my_message.smart_truncate(
    "Once upon a time in a world far far away. And they found that many people
     were sleeping better.", :sentences => 1)
# => Once upon a time in a world far far away.
Run Code Online (Sandbox Code Playgroud)

要么

Post.my_message.smart_truncate(
    "Once upon a time in a world far far away. And they found that many people
     were sleeping better.", :words => 12)
# => Once upon a time in a world far far away. And they ...
Run Code Online (Sandbox Code Playgroud)

ruby text truncate ruby-on-rails

10
推荐指数
2
解决办法
4600
查看次数

使用PHP(或javascript)获取SWF文件信息

对于我的一个项目,我想使用PHP来读取服务器上的SWF文件并获取SWF阶段的维度.因此,SWF文件尚未嵌入页面中.有人知道这是否可能以及我应该走哪条路线?

php flash

1
推荐指数
1
解决办法
5950
查看次数

C#,XmlDoc:如何引用方法重载

如果我有这两种方法

public Foo Get(string bar) { ... }
public Foo Get(int bar) { ... }
Run Code Online (Sandbox Code Playgroud)

并在不同的方法上编写这段xml文档

/// <summary>
/// Has a close relation to the <see cref="Get"/> methods.
/// </summary>
Run Code Online (Sandbox Code Playgroud)

我得到一个蓝色波浪形Get,说这是一个不明确的参考'得到'.这是真的,但我希望它引用两者.这样做的正确方法是什么?或者我应该只引用单个方法重载?

c# overloading xml-documentation

22
推荐指数
1
解决办法
2612
查看次数

如何在没有分组的情况下识别正则表达式中的两个不同的单词

我有一个正则表达式的问题,我必须在文本中识别令牌,如:

Foo-然后是其中一个barbaz后面的-一些数字,如:

Foo-bar-010
Foo-baz-101
Run Code Online (Sandbox Code Playgroud)

然后我想把我的比赛分成:Foo-bar -010Foo-baz -101

我的正则表达式是这样的:

(Foo-(bar|baz))-[0-9]+
Run Code Online (Sandbox Code Playgroud)

这有点酷,但我不想为'bar'或'baz'子句定义一个组,因为它会影响我的结果.

有没有想过只用一个组得到这个结果?

regex

3
推荐指数
1
解决办法
529
查看次数

在Web.Config文件中存储链接的最佳标记是什么?

我可能把网站放在不同的服务器上,它有链接链接,特别是因为它在sharepoint上,所以有地址和端口,所以我认为最好将链接保存在Web.Config文件中,以便不需要更改它很多.那么最佳位置或标记放在哪里,例如连接字符串位于:configuration-> connectionstrings.

asp.net sharepoint web-config

1
推荐指数
1
解决办法
1029
查看次数

SQL Alter Table然后修改值

我有一个我正在处理的SQL脚本,当我创建(或编辑)一个列然后尝试修改该新列时,我遇到了一个问题.

例如:

BEGIN
    ALTER TABLE SampleTable ADD ColumnThree int 
END

IF (EXISTS (SELECT * FROM sys.columns WHERE name = 'ColumnThree'))
BEGIN
    UPDATE SampleTable SET ColumnThree = 0
END
Run Code Online (Sandbox Code Playgroud)

现在我认为BEGIN/END块会将这两个项目分开,但是我收到错误"无效的列名'ColumnThree'." 当我试图运行它.为什么?第一个BEGIN/END不应该设置ColumnThree以及IF(EXISTS应该保护UPDATE语句在该列名称不存在时运行).

做这样的事的正确方法是什么?(我似乎有几个类似的情况需要这样做).

sql alter-table

3
推荐指数
1
解决办法
7402
查看次数

accept()与多个进程之间共享的套接字(基于Apache preforking)

我正在研究一些以Apache的MPM prefork服务器为模型的Python代码.我是一名应用程序员而不是网络程序员,自从我读Stevens已经10年了,所以我正努力加快理解代码.

我找到了Sander TemmeApache的prefork代码如何工作的简短描述.

父进程通常以root身份运行,绑定到套接字(通常是端口80或443).它生成子进程,继承了套接字的打开文件描述符,并将uid和gid更改为非特权用户和组.子节点构造一个侦听器文件描述符的轮询集(如果有多个侦听器)并监视它/它们上的活动.如果找到活动,则子活动在活动套接字上调用accept()并处理连接.完成后,它返回观察pollset(或监听器文件描述符).

由于多个子节点处于活动状态并且它们都继承了相同的套接字文件描述符,因此它们将观察相同的轮询集.接受互斥锁只允许一个孩子实际观察轮询集,一旦找到一个活动套接字,它将解锁互斥锁,以便下一个孩子可以开始观看轮询集.如果只有一个侦听器,则不使用接受互斥锁,并且所有子节点都将挂起在accept()中.

这几乎就是我正在寻找的代码的工作方式,但我不了解一些事情.

1)"孩子"和"听众"之间有什么区别?我认为每个孩子都是一个倾听者,这对我正在看的代码都是如此,但在Temme的描述中,可以有"单个听众"和"孩子".孩子什么时候会有多个听众?

2)(与1相关)这是一个进程互斥锁还是系统互斥锁?就此而言,为什么要使用互斥锁?不接受(2)在所有听众中做自己的互斥量?我的研究表明我确实需要一个互斥锁,并且互斥锁必须跨越整个系统.(羊群,信号量等)

特梅继续说:

儿童在上次提出请求时记录在共享内存区域(记分板)中.空进程可能会被父进程杀死以满足MaxSpareServers.如果太少的孩子闲置,父母将产生孩子以满足MinSpareServers.

3)这个实现是否有一个很好的参考代码(最好是在Python中)?我找到了Perl的Net :: Server :: Prefork,它为记分板使用管道而不是共享内存.我发现了一篇文章兰德尔·施瓦茨只做了preforking但没有做的记分牌.

来自Perl Cookbookpre-fork示例没有任何关于select的锁定,Chris Siebenmann的Python示例说它基于Apache但是使用成对的套接字用于记分板,而不是共享内存,并使用套接字进行控制,包括控制给定的孩子'a'ccept.这根本不符合Apache描述.

locking multiprocessing preforking

16
推荐指数
1
解决办法
5410
查看次数