我在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
谢谢,帕维尔.
多次询问这个问题的变化.使用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元素包含文本时,如何将其置于中心位置?
我正在尝试创建一个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) 我读的是的"L"(76)焦油条目类型所使用的GNU tar和兼容GNU焦油公用事业表明,在归档中的下一个项目有一个"长"的名字.在这种情况下,条目类型为"L"的标题块通常编码名称././@LongLink.
我的问题是:描述的下一个块的格式在哪里?
tar存档的格式非常简单:它只是一系列512字节的块.在正常情况下,tar存档中的每个文件都表示为一系列块.第一个块是标题块,包含文件名,条目类型,修改时间和其他元数据.然后使用所需的512字节块来跟随原始文件数据.然后是下一个条目.
如果文件名长于适合标题块中分配的空间,gnu tar显然使用了所谓的"././@LongLink技巧".我找不到它的准确描述.
当条目类型为"L"时,我如何知道"长"文件名有多长?长名称是否限制为512字节,换句话说,什么适合一个块?
最重要的是:这在哪里记录?
假设我有
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>)'的类型参数.尝试显式指定类型参数. …
我的各种WPF应用程序显示FlowDocument的.我可以使用打印WPF FlowDocument 的答案中描述的方法打印它们.
现在我想添加一个"打印预览"功能.在正常情况下,我正在打印窗口中显示的FlowDocument,因此我不需要打印预览.但在某些情况下,要打印的FlowDocument是在内存中即时构建的.在这些情况下,我想在打印前显示它.
现在,我当然可以弹出一个新窗口并显示FlowDocument,但是
我希望预览真的感觉它是打印操作的一部分,而不仅仅是应用程序中的另一个窗口.
我不想在FlowDocumentScrollViewer中使用普通的FlowDocument.它不是"任何大小",而是需要约束纸张的大小,特定的HxW比率和分页.
建议?
我应该只使用标准窗口,在这种情况下,如何确保FlowDocument处于适当的比例?
是否有更"集成"的方式在Windows的PrintDialog UI范围内进行预览?
谢谢
我可以简单地设置Transfer-Encoding标题吗?
Response.Flush()在某些时候打电话会导致这种情况发生吗?
编辑
不,我不能打电话给Response.Headers.Add("Transfer-Encoding","anything"); 那个投掷.
还有其他建议吗?
给定一个构建文件(.csproj或msbuild.xml或其他),我想运行一个msbuild命令,列出所有可用的,定义的目标.
这个功能存在吗?
我知道我可以在构建文件上进行Xpath搜索等,但是找不到包含文件中定义的目标.
基本上我希望*Messages *缓冲区在新消息到达时始终滚动到底部.
我能这样做吗?
我发现auto-revert-tail-mode但这适用于访问文件的缓冲区.当我在Messages缓冲区中尝试它时,它弹出一个错误:
auto-revert-tail-mode: This buffer is not visiting a file