小编Ran*_*oet的帖子

在HTML5画布上绘制SVG文件

是否有将SVG文件绘制到HTML5画布上的默认方式?谷歌浏览器支持将SVG加载为图像(并简单地使用drawImage),但开发人员控制台确实警告过resource interpreted as image but transferred with MIME type image/svg+xml.

我知道有可能将SVG转换为canvas命令(比如这个问题),但我希望不需要.我不关心旧的浏览器(所以如果FireFox 4和IE 9支持某些东西,那就足够了).

html5 svg canvas

112
推荐指数
5
解决办法
17万
查看次数

Silverlight:延伸到StackPanel中的剩余空间

我有一个带有两个元素的垂直StackPanel:一个Button和一个ListBox.如何将ListBox拉伸到剩余的页面高度?

<StackPanel Height="Auto" Width="Auto">
    <Button Height="30" Width="100" Content="Get Content" x:Name="GetContent"/>
    <ListBox Height="Auto" Width="Auto" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"/>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

请注意,我使用Grid容器使其工作:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
    <Button Width="100" Height="30" Content="Get Content" Click="OnGetContent" Grid.Row="0" Grid.Column="0"/>
    <data:DataGrid x:Name="MyContent" Margin="0,5" Grid.Row="1" Grid.Column="0"/>
</Grid>
Run Code Online (Sandbox Code Playgroud)

silverlight stackpanel

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

C++ lambda运算符==

如何比较C++中的两个lambda函数(Visual Studio 2010)?

std::function<void ()> lambda1 = []() {};
std::function<void ()> lambda2 = []() {};
bool eq1 = (lambda1 == lambda1);
bool eq2 = (lambda1 != lambda2);
Run Code Online (Sandbox Code Playgroud)

我收到一个编译错误,声称operator ==无法访问.

编辑:我正在尝试比较函数实例.所以lambda1 == lambda1应该返回true,而lambda1 == lambda2应该返回false.

c++ lambda

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

自定义以设计形式或用户控件进行处理

我已经创建了一个自定义的WinForms UserControl,并希望覆盖Dispose.但是,设计生成的代码已经包含Dispose方法.如何向组件添加自定义清理代码?

c# winforms

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

配置基于.NET的组件以实现免注册激活

我一直在尝试使用免注册的基于.NET的COM DLL工作,但没有成功.

  • 在Visual Studio 2008中,我添加了一个新的C#类库.
  • 我启用了'make assembly COM-visible'和'register for COM interop'选项.
  • 我添加了一个带有一些函数的公共接口和类.
  • 我在我的C++客户端应用程序中添加了一个清单依赖项:#pragma comment(linker,"/ manifestdependency ...

但是,当我启动我的应用程序时,我得到'应用程序无法启动,因为应用程序配置不正确'.

我使用Microsoft的mt工具来提取C++客户端应用程序和C#COM DLL的清单文件,两者中的信息是相同的(C++清单文件中的dependentAssembly包含与assemblyIdentity中相同的名称和版本. COM清单文件).

我也尝试了http://msdn.microsoft.com/en-us/library/eew13bza.aspx上描述的方法,但结果相似.

类似地,我尝试在我的C++客户端应用程序的"框架和参考"中添加对COM项目的引用.该属性页面上的信息看起来很有前途(它显示了'复制本地','复制依赖关系'等选项以及'assemblyIdentity'等属性),但Visual Studio既不复制DLL也不自动向清单文件添加依赖项.

请注意,'注册变体'工作正常.

任何人对我做错了什么有任何想法?

更新:

  • 当我创建一个简单的C++ DLL并嵌入一个与我的.NET COM DLL(相同的assemblyIdentity)相同名称和版本的清单时,我的应用程序启动正常.所以问题在于我的.NET COM DLL的清单文件.
  • 我可以成功从DLL中提取清单mt -managedassemblyname:...,然后嵌入相同的清单mt -outputresource:...,但这也不会导致Windows成功解决依赖关系.

c# c++ com interop

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

在C++中注册.NET COM事件的处理程序

我一直在关注如何通过COM公开.NET框架的'教程'(http://msdn.microsoft.com/en-us/library/zsfww439.aspxhttp://msdn.microsoft.com/ en-us/library/bd9cdfyx.aspx).除了活动部分,一切都有效.当我向C#接口添加事件时,会生成以下C++代码:

struct __declspec(uuid("..."))
_MessageEventHandler : IDispatch
{};

struct __declspec(uuid("..."))
IConnection : IDispatch
{
  virtual HRESULT __stdcall add_MessageEvent (
    /*[in]*/ struct _MessageEventHandler * value ) = 0;
  virtual HRESULT __stdcall remove_MessageEvent (
    /*[in]*/ struct _MessageEventHandler * value ) = 0;
}
Run Code Online (Sandbox Code Playgroud)

问题是我没有找到任何关于如何在C++中使用它的信息.我需要从派生_MessageEventHandler和实施operator()?或完全不同的东西?

(请注意,目前我还在尝试使用IConnectionPointContainer和IConnectionPoint的更多文档化方法.)

c# c++ com interop

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

将引用保留为因子中的元组成员

我希望保留引用作为因子中元组的成员.但是当我尝试对它执行'call'时,我得到错误'无法将调用应用于运行时计算值'.请注意,将函数标记为"内联"不会执行任何操作.

示例代码:

USING: accessors kernel ;
IN: stackoverflow

TUPLE: quottuple quot ;
C: <quottuple> quottuple

: call-quot ( quottuple -- result )
    quot>> call ; inline

: main ( -- )
    [ 1 ] <quottuple>
    call-quot drop ;

MAIN: main
Run Code Online (Sandbox Code Playgroud)

factor-lang

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

Visual Studio 2010库链接顺序

如何在Visual Studio 2010中指定库文件的链接顺序?

我有一个项目链接libexpat和另一个库.这个库(不在我的控制之下)似乎也包括libexpat.问题是'我们'使用不同版本的库(XML_UNICODE vs不).在Visual Studio 2008中,似乎没有问题(可能是巧合),但在Visual Studio 2010中,libexpat的错误实例已链接.我想如果我可以指定这两个库应该链接的顺序,那么我可以绕过这个问题.

c++ static-libraries visual-studio-2010

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

在InsertOneAsync之后,MongoDB id保持为空

我有一个基类Entity,它有一个字符串Id成员和一个派生类A.

但是,在创建派生类的新实例并使用InsertOneAsync将其添加到我的集合时,文档将添加到数据库中,并将null作为Id值.

使用ObjectId作为Id似乎确实有效,但我试图阻止我的模型中的MongoDB依赖.

我还尝试了以下代码,但结果是一样的:

BsonClassMap.RegisterClassMap<Entity>(cm =>
{
    cm.MapIdField(x => x.Id).SetSerializer(new StringSerializer(BsonType.ObjectId));
});
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-.net-driver

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

C2664 for std :: vector cast运算符

指定返回向量的强制转换运算符会导致错误C2664.

void foo(const std::vector<std::wstring>& s)
{
}

class Wrapper
{
public:
    Wrapper(const std::vector<std::wstring>& s) : m_s(s)
    {
    }
    operator std::vector<std::wstring>() const
    {
        return m_s;
    }
private:
    const std::vector<std::wstring> m_s;
};

Wrapper wrapper(std::vector<std::wstring>());
foo(wrapper);
foo(static_cast<std::vector<std::wstring>>(wrapper));
Run Code Online (Sandbox Code Playgroud)

我明白了:

error C2664: '`anonymous-namespace'::foo' : cannot convert parameter 1 from '`anonymous-namespace'::Wrapper (__cdecl *)(std::vector<_Ty> (__cdecl *)(void))' to 'const std::vector<_Ty> &'
with
[
  _Ty=std::wstring
]
Reason: cannot convert from 'overloaded-function' to 'const std::vector<_Ty>'
with
[
  _Ty=std::wstring
]
No constructor could take the source type, or constructor overload resolution …
Run Code Online (Sandbox Code Playgroud)

c++ casting visual-studio-2010

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