我已经知道的一个问题没有很好的答案.
我有一个我无法改变的第三方应用程序.应用程序的数据库已从MS Access转换为SQL Server 2012.该程序与ODBC连接,不关心后端.它发送非常直接的SQL,似乎也适用于SQL Server.
但是有一个表有一个名为"PLAN"的表,我已经知道它是一个SQL Server关键字.
我知道您通常会使用方括号访问这样的表,但由于我无法更改SQL,我想知道是否有任何"丑陋"的黑客可以覆盖关键字或动态转换SQL.
我想为我的Qt应用程序制作崩溃/异常处理程序.我已经有处理程序工作(不包括在下面的代码中).问题是,在Windows上,如果飞机坠毁在同一个线程在那里occures,它只能signal()和std::set_terminate()被调用.
在Linux上,它似乎默认适用于所有线程.
有没有办法让它适用于Windows上的所有应用程序线程?
#include "mainwindow.h"
#include <QApplication>
#include <stdio.h>
#include <signal.h>
#include <stdlib.h>
#include <exception>
void seg_handler(int sig)
{
// Crash/exception handling code
// ...
exit(1);
}
void std_handler( void ) {
seg_handler(1);
}
int main(int argc, char *argv[]) {
signal(SIGSEGV, seg_handler);
std::set_terminate( std_handler );
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
Run Code Online (Sandbox Code Playgroud) 我一直在尝试为 android 构建 Python 3.3.2,但我遇到了死胡同。我可能做错了什么。
这是我的构建脚本:
# Unpack Python
tar xvjf Python-3.3.2.tar.bz2
cd Python-3.3.2
# Setup Android NDK vars
export NDK=/home/jakob/dev/android/android-ndk-r9
export CROSS_COMPILE=arm-linux-androideabi
export CC=${CROSS_COMPILE}-gcc
export CXX=${CROSS_COMPILE}-g++
export SYSROOT=$NDK/platforms/android-18/arch-arm
export PATH=$PATH:$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86/bin/
# Create config.site file
echo 'ac_cv_file__dev_ptmx=no
ac_cv_file__dev_ptc=no' > config.site
# Configure
CONFIG_SITE=config.site ./configure --build=x86-unknown-linux-gnu --host=$CROSS_COMPILE --disable-ipv6 LDFLAGS="-Wl,--allow-shlib-undefined -L$SYSROOT/usr/lib" CFLAGS="-mandroid -fomit-frame-pointer --sysroot $SYSROOT"
# Build
make
Run Code Online (Sandbox Code Playgroud)
这是 make 的输出:
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm -I. -IInclude -I./Include -DPy_BUILD_CORE -o Modules/python.o ./Modules/python.c
arm-linux-androideabi-gcc …Run Code Online (Sandbox Code Playgroud) 我正在创建一个基于Web的移动应用程序,应该可以在其中上传视频记录。有两种方法可以实现此目的:
使用输入:
<input type="file" name="video" accept="video/*" capture></input>
Run Code Online (Sandbox Code Playgroud)
使用RTC MediaRecorder:
var recordedBlobs = [];
function handleDataAvailable(event) {
if (event.data && event.data.size > 0) {
recordedBlobs.push(event.data);
}
}
var options = {
mimeType: 'video/webm',
audioBitsPerSecond : 128000,
videoBitsPerSecond : 2500000
}
mediaRecorder = new MediaRecorder(window.stream, options);
mediaRecorder.ondataavailable = handleDataAvailable;
mediaRecorder.start(10);
Run Code Online (Sandbox Code Playgroud)
尽管第一个选项始终有效,但主要问题是它使用内置的移动摄像头应用程序,使我们无法控制质量,这再次导致潜在的非常大的文件(尤其是在android上)
第二个版本使我们可以完全控制质量,并让os创建适度的文件大小,该大小在大小上可以接受,作为应用程序中的内容。iOS / Safari目前尚不支持此功能,但是可以这样做,因为默认情况下,iPhone从浏览器启动时会记录小文件。因此,当用户代理为iOS时,我可以激活选项1。
现在的问题:
如果我可以的话,第一种选择会很好:
选项2的问题在于仅支持.webm容器类型,而Safari不支持该类型。
因此,我有点停滞不前-现在看来,我唯一的选择是在上传时将传入的.webm文件转换为服务器上的.mp4文件。但这似乎是服务器上CPU成本很高的过程。
有什么好主意吗?