小编JBL*_*JBL的帖子

sqlalchemy连接到服务器,未指定数据库

是否有可能连接MSSQL服务器,使用的SQLAlchemy和thencreate数据库?

我使用以下内容:

sqlalchemy.create_engine("mssql+pyodbc://sa:pwd@localhost/")

但是我收到一个错误:

Detail DBAPIError: (Error) ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)') None None

我想连接到服务器,然后创建数据库并使用它.

python sql-server odbc sqlalchemy

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

流的内容和字符串`str()`之间的区别是否返回?

我正在使用一小段生成PDF文件的代码,我在互联网上找到了这些代码,并尝试(轻柔地)优化它,因为文件的创建需要很长时间.在分析之后,我将其缩小到以下代码:

std::ostringstream tmp;
tmp << std::hex << std::uppercase << std::setfill('0') <<
    std::setw(2) << r << " " <<
    std::setw(2) << g << " " <<
    std::setw(2) << b;

out << tmp.str();
Run Code Online (Sandbox Code Playgroud)

在一个紧密的循环中发现,与out作为一个ostringstream之前它写入文件,基本上包含整个PDF内容.我发现那tmp.str()是在该循环中花费最多时间的行,并且在查找str()将返回流的底层字符串的C++引用时看到了.

然后,我想删除该副本并直接使用out会更快.所以我倾倒tmp并直接做了:

out << std::hex << std::uppercase << std::setfill('0') <<
    std::setw(2) << r << " " <<
    std::setw(2) << g << " " <<
    std::setw(2) << b;
Run Code Online (Sandbox Code Playgroud)

但现在,生成的PDF文件被视为"已损坏",无法通过PDF阅读器打开,而前一个可能是.我使用两种方法(使用tmp流和没有)创建PDF 来比较行输出,但没有发现明显的差异...... …

c++ string stringstream

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

警告:.../Android.mk:链接器标志中的非系统库

跑步时我收到了这个警告$ANDROID_NDK_ROOT/ndk-build.在Android.mk下面.

$ $ANDROID_NDK_ROOT/ndk-build 

WARNING:/Users/jwalton/Android-CryptoPP/jni/Android.mk:prng:
    non-system libraries in linker flags: -lcryptopp -lstlport_shared    
    This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES    
    or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the
    current module
...
Run Code Online (Sandbox Code Playgroud)

但是,当我按照说明并-lcryptopp -lstlport_shared从中删除时LOCAL_LDLIBS,我会收到与符号相关的链接错误libstlport_shared.so.Android.mk文件后面显示了错误示例.

怎么样,究竟,并ndk-buildAndroid.mk设置?

我为什么要添加$(STLPORT_INCL)LOCAL_C_INCLUDES,并$(STLPORT_LIB)LOCAL_LDFLAGS?为什么APP_STL := stlport_shared 建立在STL正确开箱?


LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

TARGET_ARCH_ABI := armeabi
TARGET_ABI      := android-9-armeabi …
Run Code Online (Sandbox Code Playgroud)

c++ android android-ndk ndk-build

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

为什么stringstream会产生奇怪的值?

所以,我正在尝试在我的程序中使用stringstream,以获得一些格式化的字符串(特别是因为我需要将数字转换为字符串).

问题是,我的程序崩溃,当我使用Visual Studio调试它时,在我的间谍窗口中,我看到我的stringstream的字符串缓冲区产生(当试图向其添加"Framerate"时):

"FramerateÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍýýýý««««««««îþîþ"

代码:

std::stringstream s;
s << "Framerate";
Run Code Online (Sandbox Code Playgroud)

我的代码然后会在我尝试获取相关字符串时崩溃...我找不到任何解释,也没有我的代码问题......

编辑:原来这些字符不是问题,并且stringstream返回预期的字符串str().

c++ stringstream

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

Qt线程关联性和moveToThread问题

我正在尝试使用Qt中的线程将一些工作委托给一个线程,但是我无法使其工作。我有一个继承QMainWindow的类,该类具有一个启动线程来工作的成员对象。该对象具有QMainwindow作为父对象。它包含并值得注意地初始化了另一个QObject,m_poller我想将其移到我创建的线程中:

m_pollThread = new QThread;
m_poller->moveToThread(m_pollThread);
//Bunch of connection
m_pollThread->start();
Run Code Online (Sandbox Code Playgroud)

我遵循了有关如何在Qt中管理线程而又不对其进行子类化(即不要做错)的准则,但是在VS中我仍然收到以下消息:

QObject :: moveToThread:当前线程(0x2dfa40)不是对象的线程(0x120cf5c0)。无法移动到目标线程(0x1209b520)

我发现以下似乎处理相同问题的帖子,但无法用答案修复我的代码。我觉得我实际上是在正确地调用moveToThread(因为我没有从另一个线程中调用它来“拉”一个对象),但是显然我仍然在那里缺少一些东西:如消息所暗示的那样,似乎已经有多个线程,而我对moveToThread()的调用似乎以错误的方式结束(尽管我承认我对此是全新的,并且可能会发现这是完全错误的...)

那么我使用Qt线程的方式仍然可能出什么问题?

谢谢 !

c++ qt multithreading

5
推荐指数
2
解决办法
9235
查看次数

Phonegap 2.9.0无法在默认浏览器中打开外部链接

我想要做的就是超级简单,在设备浏览器上打开一个链接,但它显示出比我想象的更难.

我创建项目并添加ios和android平台:

$ phonegap create project_name
$ phonegap build ios
$ phonegap build android
Run Code Online (Sandbox Code Playgroud)

我有 ; 在config.xml内部(尝试了不同的方式,没有工作)和"stay-in-webview"设置为false.

我在www/index.html文件中做的唯一更改是添加链接,页面包含所有默认脚本(phonegap.js,js/index.js和对app.initialize()的调用).

我尝试了所有这些链接,都在webview中打开:

<a href="#" onclick="window.open('http://www.google.com', '_blank', 'location=yes');">_blank</a>
<a href="#" onclick="window.open('http://www.google.com', '_system', 'location=yes');">_system</a>
<a href="#" onclick="window.open('http://www.google.com', '_system');">_system</a>
<a href="http://www.google.com" target="_blank">target _blank</a>
<a href="http://www.google.com">no target</a>
Run Code Online (Sandbox Code Playgroud)

明确我在ios模拟器和android模拟器中完成的所有测试.

我搜索了很多,尝试了我发现的一切,但没有任何作用.谢谢你的帮助

phonegap-plugins cordova phonegap-build

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

有什么方法可以使用Qt而不为所有内容使用动态内存?

因此,我想我已经在网络上进行了彻底的搜索,发现没有什么真正有用的(最多只是令人困惑……)。

我想知道如何(如果可能)将Qt与非动态内存配合使用。我面临的问题是,对于许多小部件,我确切地知道我想要使用什么(这些子小部件,这些布局,固定数量等)。但是,当您不使用动态内存时,Qt中的所有内容似乎都会受到影响。一个简单的示例是QLayout,它来自Qt文档,旨在对所添加内容的所有权。所以基本上,下面的代码:

//In header
class ThumbnailDialog : public QDialog
{
    Q_OBJECT
public:
    ThumbnailDialog(QWidget* parent = 0);
    ~ThumbnailDialog(void);
private:
    QPushButton m_confirm;
    QPushButton m_cancel;

    QHBoxLayout m_buttonsLayout;
};

//Implementation of ctor
ThumbnailDialog::ThumbnailDialog(QWidget* parent):
    QDialog(parent)
{
     //...
     m_buttonsLayout.addWidget(&m_confirm);
     m_buttonsLayout.addWidget(&m_cancel);
     //...
     setLayout(&m_dialogLayout);
}
Run Code Online (Sandbox Code Playgroud)

...将最终(在MSVC上)导致调试断言失败,_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)因为在ThumbnailDialogdtor中,布局试图删除按钮...显然不应该这样做。

因此,像“ Qt Expert”所提倡的那样,我是否被迫在所有地方都使用动态记忆(虽然提到了“堆”……)?这似乎是错误的,因为这阻止了RAII的使用(如果父子关系意味着将进行删除,那么我不能使用智能指针来执行此操作)。对于编译时已知的内容,诉诸动态内存也感觉非常错误……(但是我可能是错的,这只是我的感觉)。

所以:有没有一种方法可以使用Qt而不new为每个小部件/布局使用动态内存和s?

c++ qt dynamic-memory-allocation

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

如何确定函数参数是自动设置为默认值还是在 C++ 中显式设置?

我很确定这是不可能的,但如果某种方式存在(可能通过编译器提供的宏),它对我来说非常有用,所以我在这里发布它。假设我有一个函数:

void func( int param1, bool param2=false){ ... }
Run Code Online (Sandbox Code Playgroud)

param2这里已经给出了默认值。是否有任何机制可以确定param2是明确设置为其默认值false还是自动传递?换句话说,从 function 内部func,是否可以区分以下两个调用?我正在使用 Microsoft Visual C++ 编译器。

func(1, false);
Run Code Online (Sandbox Code Playgroud)

func(1);
Run Code Online (Sandbox Code Playgroud)

c++ default-parameters

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

仅在特定翻译单元中找不到头文件

我目前在Android上遇到了针对我的应用的编译问题.

在编译我的本机库时遇到以下错误ndk-build:

BackgroundDisplayConfiguration.h:12:23: fatal error: glm/glm.hpp: 
No such file or directory
#include <glm/glm.hpp>
                          ^
Run Code Online (Sandbox Code Playgroud)

让我感到困惑的是,我已经按照Android.mk以下方式为这个仅头文件库指定了一个路径:

LOCAL_CPPFLAGS += -I../../glm/include
Run Code Online (Sandbox Code Playgroud)

并且这条路径存在并且是正确的,而且如果我搞砸了这条路径,我会在包含的其他文件中得到相同的错误glm.hpp.当路径正确时,只有这个文件会产生错误,我不明白为什么.有什么指针吗?

编辑:好的,这更令人费解.include选项出现在每个文件的每个编译器命令中,但不出现在swig生成的大包装器的编译器命令(输出my library_native_wrap.o)上,这就是它产生错误的地方......好吧,它至少解释了观察到的行为.

c++ swig android-ndk

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

引用指向哪里?

我不确定我是否正确理解了堆栈。对于复数 a 和 b(a=3+5i 和 b=2+i),我有以下运算符重载。

struct complex{
int x;
int y;
};

complex& operator+=(complex& a, const complex b){
a.x=a.x+b.x;
a.y=a.y+b.y;
return a; 
}
Run Code Online (Sandbox Code Playgroud)

现在我想知道返回值的引用指向哪里。

我认为在主堆栈帧中有一个用于 a = ax 和 64 位 ay 的内存区域,因为 ax/ay 是 int 类型。而operator+=stack-frame中的返回值a指向这个“a”-内存区域。

我想知道“a”-memory-area 是什么样子的,复杂类型的对象是如何存储在主堆栈框架中的?

它是像一个数组,引用指向“a[0]”还是 ax 和 ay 分开,你需要“两个”引用指针来指向复杂类型的对象。

c++ memory-address

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