我想window.open(fileObjectURL)在javascript中使用chrome浏览器(Chrome 56.0.2924.87,Ubuntu 14.04)在新标签页中打开PDF .我正在从base64编码数据创建blob并创建一个这样的objectURL:
const fileObjectURL = URL.createObjectURL(fileBlob);
Run Code Online (Sandbox Code Playgroud)
它在最新的Firefox浏览器中运行良好.但在Chrome中我可以看到新标签已打开,但随后立即关闭.所以我在控制台等方面没有任何错误.现在Chrome中唯一可行的方法是将base64数据直接提供给该window.open(fileBase64Data)函数.但我不喜欢在网址中设置的完整数据.
也许这是Chrome阻止blob打开的安全问题?
我有一个C++项目(visual studio 2010),它包含本机代码和c ++/cli代码.我无法使用/ clr编译整个项目,所以我只针对各自的c ++/cli文件进行编译.我的问题是头文件不能用/ clr编译,但我想让一些c ++/cli函数在整个项目中可重用,因此在头文件中定义方法原型,将其包含在我需要它的每个文件中.有解决方案吗?我试图在头文件中定义一些混合代码方法原型,但必须打开/ clr才能进行编译.
这是我的例子:
Test.h
#include <Windows.h>
#include <vector>
#include <string>
using std::vector;
using std::string;
#include <msclr/marshal.h>
#pragma managed
using namespace msclr::interop;
using namespace System;
using namespace System::IO;
using namespace System::Runtime::InteropServices;
public ref class Test
{
public:
int Foo();
};
Run Code Online (Sandbox Code Playgroud)
TEST.CPP
#include "Test.h"
int Test::Foo()
{
return 4;
}
Run Code Online (Sandbox Code Playgroud)
Intellisense抱怨Test.h中的错误,例如c ++/cli必须启用才能使用#using.但我认为这可以忽略不计,无论如何都会编译.
编译中止链接器错误(sry,我有德语VS版本)
Fehler 6 error LNK1255: Fehler bei Verknüpfung aufgrund von Metadatenfehlern.
Fehler 4 error LNK2022: Fehler bei Metadatenoperation (8013118D) : Duplizierte Typen (_PROPSHEETPAGEA) …Run Code Online (Sandbox Code Playgroud) 我使用wglUseFontBitmaps在OpenGL中绘制的字体为每个字母占用相等的空格(宽度),因此为"." 例如,需要与"M"一样多的空间.我已经改变了字体创建中的音高参数,VARIABLE_PITCH但它没有改变任何东西.它实际上可以用wglUseFontBitmaps完成,还是它的性质是每个生成的位图占用相等的空间?
另外我用GetTextExtentPoint32W()查询光栅位图文本的宽度/高度.返回的宽度还可以,但高度总是太大.我在黑色文本后面绘制一个明亮的矩形,使其在3d场景中始终可读.为什么被查询的高度如此之大?保留给更高级字符的空间是否像这样的"É"?
我的设置:
HFONT font; // Windows Font ID
font = CreateFont( -12, // Height Of Font
0, // Width Of Font
0, // Angle Of Escapement
0, // Orientation Angle
FW_EXTRALIGHT, // Font Weight
FALSE, // Italic
FALSE, // Underline
FALSE, // Strikeout
ANSI_CHARSET, // Character Set Identifier
OUT_TT_PRECIS, // Output Precision
CLIP_DEFAULT_PRECIS, // Clipping Precision
ANTIALIASED_QUALITY, // Output Quality
FF_DONTCARE | VARIABLE_PITCH, // Family And Pitch
(LPCWSTR)L"Arial"); // Font Name
SelectObject(this->hDeviceContext, font);
//init display lists …Run Code Online (Sandbox Code Playgroud) 我正在尝试为组合框(win32、c++)或编辑控件实现自动建议。但我不知道如何正确使用接口 IAutoComplete。我需要一个自定义的字符串列表,应该从中获取自动建议的匹配项。但是如何用 IEnumString 来实现呢?我找到了这个链接,但它没有透露一切:http : //msdn.microsoft.com/en-us/library/windows/desktop/hh127437%28v=vs.85%29.aspx
有没有人实施过这个?提前谢谢迈克尔
我用一个成员函数定义了一个简单的类模板。它是在类外定义的,具有额外的(显式)特化,也在类外定义。全部在一个头文件中。如果您在多个翻译单元中包含此标头,则会由于 One-Definition-Rule 出现链接器错误。
// Header with a template
template <class T>
class TestClass
{
public:
TestClass() {};
~TestClass() {};
bool MemberFunction();
};
template <class T>
bool TestClass<T>::MemberFunction()
{
return true;
}
template <>
bool TestClass<double>::MemberFunction()
{
return true;
};
Run Code Online (Sandbox Code Playgroud)
到目前为止一切都很好。但是如果我把成员函数的定义放在类体中,链接器错误就会消失,这些函数可以在不同的翻译单元中使用。
// Header with a template
template <class T>
class TestClass
{
public:
TestClass() {};
~TestClass() {};
bool MemberFunction()
{
return true;
}
};
template <>
bool TestClass<double>::MemberFunction()
{
return true;
};
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么它会这样工作?我使用 MSVC 2012。ODR 在模板上有一些例外,我最初认为这是原因。但是类内部/外部的“Base”函数的定义在这里有所不同。
我有一个像这样的字符串数组:
using std::string;
string myArray[] = { string("abc"), string("foo"), string("muh") };
Run Code Online (Sandbox Code Playgroud)
现在我想使用这个功能:
HRESULT Init(T* begin, T* end, IUnknown* pUnk, CComEnumFlags flags = AtlFlagNoCopy );
Run Code Online (Sandbox Code Playgroud)
T在我的情况下是LPOLESTR.所以我需要将std :: string数组分别转换为LPOLESTR我需要一个LPOLESTR*来开始和结束这个数组.怎么做的?
Thx提前
我有一个我想捕获mousemove事件的反应容器。这很简单。此外,我有一个由容器渲染的react子组件,该组件实际上是mousemove事件处理程序的逻辑所在。因此,我需要将mousemove事件从容器父级传递/委托给子级,并获取所调用子级的mousemove处理函数。如何正确完成?
我需要在容器而不是子组件中捕获鼠标事件,因为容器是DOM中较大的HTML元素,并且我需要在整个区域中捕获事件。
mousemove-handler-logic必须位于子组件中,因为它封装了容器不应该知道的某些功能。
容器的渲染方法:
render() {
return (
<div data-component="MyContainer"
onMouseMove={(event) => this.handleMousemove(event)}>
<MySubComponent {// ... give some props here}>
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
我尝试了一种方法,其中MyContainer设置MySubComponent的回调函数以检索其DOM节点并向addEventListener注册处理程序,但是这种方法不能始终如一地工作,因为DOM节点有时会不确定:
export default class MyContainer extends Component {
constructor(props) {
super(props);
this.state = {};
this.getContainerRef = this.getContainerRef.bind(this);
}
getContainerRef() {
return this.refs['containerWrap'];
}
render() {
return (
<div data-component="MyContainer"
ref="containerWrap"
onMouseMove={(event) => this.handleMousemove(event)}>
<MySubComponent getContainerRef={this.getContainerRef} />
</div>
);
}
}
export default class MySubComponent extends Component {
constructor(props) {
// ... init something
this.handleMousemove = this.handleMousemove.bind(this);
} …Run Code Online (Sandbox Code Playgroud) 关于存储库,它们在stackoverflow和整个Web上的使用和布局存在争议性的讨论.我对如何有效地实现存储库后面的数据访问抽象(例如数据库)感到困惑.
我没有使用ORM工具/框架,因为我想亲眼看到细节.目前我正在使用DAO对象访问(mysql)数据库并提供Business Objects(域对象).由数据库表中的外键给出的关联被解析并加载到相应对象的DAO中(当前没有延迟加载).由于我不想直接在业务逻辑中使用我的数据库DAO,因此我认为存储库是一个很好的进一步抽象.当我在Repository中实现像GetEmployeesByShopAndPosition()这样的复杂查询时,我遇到了困难:我看到了实现这个的两种可能性:
第一种方法使用了存储库实际应具有的集合性质,但似乎效率非常低.第二种方法生成一个膨胀的DAO,但效率更高.
我的问题:
我知道这个主题不是黑/白,因为所涉及的设计模式也可以以不同的方式实现,但我想有一些指导方针不应该被打破或混淆以分离关注点和持久性无知(PI).
我有一个实时OpenGL应用程序渲染一些纹理对象.我已经构建了一个函数来通过PFD_DRAW_TO_BITMAP将它渲染到DIB并将其复制到图像来制作渲染场景的内部屏幕截图.除了一种纹理外,它的效果非常好.这些是具有24bpp的JPG(因此每个R,G,B为8位).我可以加载它们并实时正确渲染,但不能渲染到DIB.对于其他纹理,效果很好.在虚拟机上测试我的应用程序时,我有相同的行为(WinXP,没有硬件加速!).这些特定的纹理甚至没有在实时渲染中显示.如果没有硬件加速,我猜WinXP使用自己的OpenGL软件实现,并回归到OpenGL 1.1.那么有没有3D硬件加速不能绘制的纹理?还是有一个常见的陷阱?