小编Che*_*eso的帖子

我可以在Visual Studio中的单个项目中混合使用C++和C吗?

我在VS2008中有一个Win32 DLL项目,它是用少数几个C模块编写的.
因为我希望能够在VS2008外部构建,而不依赖于VS2008,所以我制作了一个自定义makefile,它可以完成所有构建和链接步骤.这一切都设置得很好.

现在我想为这个DLL添加几个C++模块.我修改了自定义makefile以将.cpp模块编译为C++,将.c模块编译为常规C(/ Tc).这一切都有效.它把所有东西连在一起,没问题.

我可以配置VS2008项目吗?

我可以在同一个VS2008项目中混合C++和C吗?

或者我需要一个自定义构建步骤吗?

谢谢.


回答

我将VS2008项目设置为C编译.我需要将其更改为Compile As"Default".右键单击项目,选择"属性",然后选择......:

alt text http://i33.tinypic.com/qqsd8g.jpg

谢谢,帕维尔.

c c++ winapi visual-studio-2008

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

如何使用CSS在LI内的锚中垂直居中文本?

多次询问这个问题的变化.使用CSS进行垂直居中是一项挑战.

我有一个特定的场景,处理水平显示的列表.标记是这样的:

  <ul id='ul1' class='c'>
    <li><a href='javascript:void(0)'>Fribble Fromme</a></li>
    <li><a href='javascript:void(0)'>Fobble</a></li>
    <li><a href='javascript:void(0)'>Foo Fickle Pickle</a></li>
  </ul>
Run Code Online (Sandbox Code Playgroud)

风格是这样的:

  ul.c {
    height:52px;
    text-align:center;
  }
  ul li a {
    float:left;
    text-decoration:none;
    border: 1px solid Maroon;
    padding:2px 12px;
    background:#FFEF8A;
    line-height:1em;
    width:100px;
  }
  ul li a:hover {
    background: #CCC;
  }
  ul li {
    height:52px;
    display:inline-block;
  }
Run Code Online (Sandbox Code Playgroud)

结果列表如下所示:

在此输入图像描述

但我希望所有的盒子都是相同的高度,我希望文本在每个盒子中垂直居中.我可以通过height为A元素添加样式来设置box-height .结果如下:

在此输入图像描述

......这与我想要的很接近,但垂直居中并没有发生.

我可以按照这篇文章的建议设置line-height文本来进行垂直居中.如果我知道哪些元素将获得多行文本,我甚至可以为不同的A元素选择不同的值.但我不知道哪些会需要多行.line-height

当一些A元素包含文本时,如何将其置于中心位置?

css vertical-alignment

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

有人可以向我解释占有量词吗?(常用表达)

我正在阅读PCRE文档,它指的是占有量词,但没有明确或具体地定义它们.我知道贪婪的量词是什么,我知道什么是懒惰的量化器.但占有欲?

PCRE手册页似乎当使用术语而不定义它被欺骗.该手册页特别指出术语占有量词首先在Friedl的书中定义.嗯,这很好,但是我没有Friedl的书,在阅读手册页之间,我无法弄清楚占有量词与贪婪词的区别.

  • ?=零或一,贪心
  • ?? =零或一,懒惰
  • ?+ =零或一,占有欲
  • '+'=一个或多个,贪心
  • +?=一个或多个,懒惰
  • ++ =一个或多个,占有欲

regex pcre

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

在.NET中,如何在NTFS中创建连接,而不是Symlink?

我正在尝试创建一个NTFS Junction.从cmd行我可以使用sysinternals中junction.exe工具执行此操作.结点的DIR cmd输出如下所示:

 Volume in drive C has no label.
 Volume Serial Number is C8BC-2EBD

 Directory of c:\users\cheeso\Documents

03/22/2009  09:45 PM    <JUNCTION>     My Music [\??\c:\users\cheeso\Music]
05/11/2007  05:42 PM    <DIR>          My Received Files
03/22/2009  09:46 PM    <JUNCTION>     my videos [\??\c:\users\cheeso\Videos]
Run Code Online (Sandbox Code Playgroud)

我在某地读过Junctions是Symbolic Links的子集.

所以我尝试使用CreateSymbolicLink创建一个Junction.当我这样做时,我实际上得到了一个符号链接,而不是一个连接点.

09/09/2009  11:50 AM    <SYMLINKD>     newLink [.\]
Run Code Online (Sandbox Code Playgroud)

还有CreateHardLink.那里的文档说交汇点(又名"重新分析点")是硬链接的子集.但我似乎无法接受这项工作.它完成但没有创建硬链接或联结.

我正在使用.NET/C#,导入如下所示:

    [Interop.DllImport("kernel32.dll", EntryPoint="CreateSymbolicLinkW", CharSet=Interop.CharSet.Unicode)]
    public static extern int CreateSymbolicLink(string lpSymlinkFileName, string lpTargetFileName, int dwFlags);

    [Interop.DllImport("kernel32.dll", EntryPoint="CreateHardLinkW", CharSet=Interop.CharSet.Unicode)]
    public static extern bool CreateHardLink(string lpFileName, …
Run Code Online (Sandbox Code Playgroud)

.net pinvoke winapi ntfs deviceiocontrol

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

什么是GNU tar ././@LongLink"技巧"?

我读的是的"L"(76)焦油条目类型所使用的GNU tar和兼容GNU焦油公用事业表明,在归档中的下一个项目有一个"长"的名字.在这种情况下,条目类型为"L"的标题块通常编码名称././@LongLink.

我的问题是:描述的下一个块的格式在哪里?

tar存档的格式非常简单:它只是一系列512字节的块.在正常情况下,tar存档中的每个文件都表示为一系列块.第一个块是标题块,包含文件名,条目类型,修改时间和其他元数据.然后使用所需的512字节块来跟随原始文件数据.然后是下一个条目.

如果文件名长于适合标题块中分配的空间,gnu tar显然使用了所谓的"././@LongLink技巧".我找不到它的准确描述.

当条目类型为"L"时,我如何知道"长"文件名有多长?长名称是否限制为512字节,换句话说,什么适合一个块?

最重要的是:这在哪里记录?

interop gnu tar

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

.NET:静态方法的推断泛型类型

假设我有

public static List<T2> Map<T,T2>(List<T> inputs, Func<T, T2> f)
{
    return inputs.ConvertAll((x) => f(x));
}

private int Square(int x) { return x*x; }

public void Run()
{
    var inputs = new List<Int32>(new int[]{2,4,8,16,32,64,128,256,512,1024,2048});

    // this does not compile
    var outputs = Map(inputs, Square); 

    // this is fine
    var outputs2 = Map<Int32,Int32>(inputs, Square);

    // this is also fine (thanks, Jason)
    var outputs2 = Map<Int32,Int32>(inputs, (x)=>x*x);

    // also fine
    var outputs2 = Map(inputs, (x)=>x*x);
}
Run Code Online (Sandbox Code Playgroud)

为什么不编译?

编辑:错误是:

错误CS0411:无法从用法推断出方法'Namespace.Map <T,T2>(System.Collections.Generic.List <T>,System.Func <T,T2>)'的类型参数.尝试显式指定类型参数. …

.net c# generics type-inference c#-3.0

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

如何在WPF应用程序中生成FlowDocument的"打印预览"?

我的各种WPF应用程序显示FlowDocument的.我可以使用打印WPF FlowDocument 的答案中描述的方法打印它们.

现在我想添加一个"打印预览"功能.在正常情况下,我正在打印窗口中显示的FlowDocument,因此我不需要打印预览.但在某些情况下,要打印的FlowDocument是在内存中即时构建的.在这些情况下,我想在打印前显示它.

现在,我当然可以弹出一个新窗口并显示FlowDocument,但是

  1. 我希望预览真的感觉它是打印操作的一部分,而不仅仅是应用程序中的另一个窗口.

  2. 我不想在FlowDocumentScrollViewer中使用普通的FlowDocument.它不是"任何大小",而是需要约束纸张的大小,特定的HxW比率和分页.

建议?

  • 我应该只使用标准窗口,在这种情况下,如何确保FlowDocument处于适当的比例?

  • 是否有更"集成"的方式在Windows的PrintDialog UI范围内进行预览?

谢谢

.net printing wpf flowdocument flowdocumentscrollviewer

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

如何在ASP.NET响应中将Transfer-Encoding设置为chunked,显式或隐式?

我可以简单地设置Transfer-Encoding标题吗?

Response.Flush()在某些时候打电话会导致这种情况发生吗?


编辑
不,我不能打电话给Response.Headers.Add("Transfer-Encoding","anything"); 那个投掷.

还有其他建议吗?


相关:
在ASP.NET中启用分块传输编码

asp.net http transfer-encoding chunked-encoding

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

有没有办法列出构建文件中可用的所有构建目标?

给定一个构建文件(.csproj或msbuild.xml或其他),我想运行一个msbuild命令,列出所有可用的,定义的目标.

这个功能存在吗?

我知道我可以在构建文件上进行Xpath搜索等,但是找不到包含文件中定义的目标.

msbuild

15
推荐指数
2
解决办法
7202
查看次数

在emacs中,我可以设置*Messages*缓冲区以便尾巴吗?

基本上我希望*Messages *缓冲区在新消息到达时始终滚动到底部.

我能这样做吗?

我发现auto-revert-tail-mode但这适用于访问文件的缓冲区.当我在Messages缓冲区中尝试它时,它弹出一个错误:
auto-revert-tail-mode: This buffer is not visiting a file

emacs

15
推荐指数
2
解决办法
1890
查看次数