学习C++会帮我快速构建本机应用程序吗?作为程序员,它会帮助我吗?还有什么其他好处?
我之所以想学习C++,是因为我对构建在JVM和.NET之上的应用程序的UI性能感到失望.他们感觉很慢,而且开始也很慢.当然,一个非常糟糕的程序员也可以使用C++创建一个更慢,更缓慢的应用程序,但我不考虑这种情况.
我最喜欢的Windows实用程序之一是Launchy.在Readme.pdf文件中,该程序的作者写道:
0.6这是第一个C++版本.由于我对C#的大型.NET框架要求感到沮丧,而且用户缺乏安装它的愿望,我决定切换回更快的语言.
我完全同意Launchy的作者关于.NET框架要求甚至桌面应用程序的JRE要求.更别说它们的具体版本了.一些最好的和我最喜欢的桌面应用程序不需要运行.NET或Java.它们只是在安装后运行.它们大多是使用C++构建的吗?C++是基于GUI的良好和快速应用程序的唯一选择吗?
而且,我也非常有兴趣听到学习C++的其他好处.
我有一个正在本地开发的 gem,其结构如下:
富
分机
富
扩展配置文件
foo.cpp
foo.h
等.cpp
等.h
库
foo.gemspec
--- foo.gemspec --
Gem::Specification.new |s|
s.name =“foo”
s.版本 = "0.0.2"
s.author =“伊蒙大炮”
s.files = Dir["ext/foo/*.{h,cpp}"] + Dir["lib/**/*"] + Dir['ext/**/extconf.rb']
s.platform = Gem::Platform::RUBY
s.require_paths = [ 'lib', 'ext' ]
s.extensions = Dir['ext/**/extconf.rb']
结尾
--- ext/foo/extconf.rb ----
需要“mkmf”
$CPPFLAGS +=“-std=c++11 -Wno-unused-value”
中止“缺少 libz”,除非 has_library("z")
中止“缺少 c++ 标准库”,除非 has_library("stdc++")
创建makefile“foo”
我使用 gem build foo 构建一个 gem,似乎构建成功,然后将该 gem 添加到我的 Rails 应用程序的供应商/gems 下。我在 Gemfile 中这样提到:
gem 'foo', '0.0.2', :path => '供应商/gems'
当我“捆绑安装”时,它说:
使用来自供应商/gems …
我有一个当前在 Visual Studio 中设置的 C++ 代码库(在 Windows 上运行),其中包含多个相互依赖的项目。我试图把它带到 Android Studio,让它在 Android 上运行。我熟悉 Visual Studio 和 C++,但对 Android Studio 的 Gradle 和 CMake 很陌生。
我(可能是错误的)期望是尝试处理像 Visual Studio 解决方案这样的 Android Studio 项目和像 Visual Studio 项目这样的 Android Studio 模块。鉴于我的代码库在 Visual Studio 中使用多个项目,我试图在 Android Studio 中创建多个模块——每个模块都有自己的build.gradle和CMakeLists.txt文件。
问题是我无法让一段代码(AS 模块)与另一段链接。我正在编译这些不同的部分作为STATIC使用add_library()(我计划有一个模块来创建一个SHARED库,加载到Java)。
我可以轻松地通过include_directories("../OtherModule/src/"). 但是,我无法将其链接。我找不到要链接到的 .so(或类似)文件(通过target_link_libraries()或等效)。当我从给定的模块中提取 .arr 文件时,我看不到任何 .so 或任何内容。
我意识到我可以简单地将整个代码库放在一个模块下(使用一个build.gradle和一个CMakeLists.txt-- 或者CMakeLists.txt使用 's 的网络add_subdirectory())。我不知道这是否可以,或者是否需要更多/更少的时间来构建。
我确信可以有多种方法来设置它,这可能只是一个偏好问题。到目前为止,我所做的所有研究都只发现将本机代码严格添加到带有 Java 代码的同一模块中——做基本的 …
我已经按照本文档所述配置了我的项目。我正在运行应用程序,我得到了这个
JS 服务器已经运行。在设备上构建并安装应用程序(cd android && ./gradlew installDebug)...
配置项目 :app 从 .env 读取环境
*** 缺少 .env 文件 ****
https://medium.com/ Differential/managing-configuration-in-react-native-cd2dfb5e6f7b
谁能帮我解决这个问题吗?
请帮助我如何调试具有断点的本机响应,我发现仅适用于android真实设备的解决方案,但无法使用android模拟器和iOS模拟器进行调试。
连接的设备:
它正在运行开发者选项并启用了 USB 调试
它使用 MTP 作为设备文件管理器
驱动程序已安装到笔记本电脑上,没有任何问题,我可以正常浏览文件
当我运行:ionic cordova run android --device我得到这个输出:
BUILD SUCCESSFUL in 5s
42 actionable tasks: 42 up-to-date
Built the following apk(s):
C:\Users\K-PC\myApp\platforms\android\app\build\outputs\apk\debug\app-debug.apk
native-run.cmd android --app platforms\android\app\build\outputs\apk\debug\app-debug.apk --device
[native-run] ERR_NO_DEVICE: No hardware devices found. Not attempting emulator because --device was specified.
[native-run]
[native-run] More details for this error may be available online:
[native-run]
[native-run] https://github.com/ionic-team/native-run/wiki/Android-Errors
[ERROR] An error occurred while running subprocess native-run.
native-run.cmd android --app platforms\android\app\build\outputs\apk\debug\app-d... exited with exit code 1.
Re-running this …Run Code Online (Sandbox Code Playgroud) 我在我的 Flutter 应用程序之一中使用fast_actions插件,并希望在用户单击快捷方式时调用无头 Dart 函数。
我只是希望在后台执行 dart 代码,而不向用户显示应用程序屏幕。我知道很多插件,如background_fetch、WorkManager 等可以安排在后台运行dart 代码。
我假设可能需要修改quick_actions插件中的java代码才能实现?
我正在尝试将带有 React Native 前端和 axios 的图像上传到我的后端。
const pickImage = async () => {
let result = await ImagePicker.launchImageLibraryAsync({
mediaTypes: ImagePicker.MediaTypeOptions.Images,
allowsEditing: false,
aspect: [9, 16],
quality: 1,
});
console.log(result.uri);
if (!result.cancelled) {
console.log(result);
setPhoto(result);
}
};
Run Code Online (Sandbox Code Playgroud)
现在你可以清楚地看到我正在使用 ImagePicker 库设置照片状态。
let img_to_upload = {
type: 'image/jpeg',
name: 'random-file-name',
uri: Platform.OS === 'android' ? photo.uri : photo.uri.replace('file://', ''),
};
let formData = new FormData();
formData.append("title", 'this is tandom text');
formData.append("file", img_to_upload);
Run Code Online (Sandbox Code Playgroud)
在这里您可以清楚地看到我启动了一个 formdata 对象,然后向表单添加了两个字段。
axios({
method: 'POST', …Run Code Online (Sandbox Code Playgroud) 设想:
我的桌面上有一个应用程序,其中注册了 URL 方案apple://。在 Chrome 上,我访问 google.com 并在页面的控制台中输入以下内容:
window.open('apple://launch')
Run Code Online (Sandbox Code Playgroud)
此时,一个新的 Chrome 窗口将打开,我会看到允许打开此应用程序的对话框。在 google.com 的控制台日志上我看到日志消息
Launched external handler for 'apple://launch'.
现在我尝试以下代码
window.open('banana://launch')
Run Code Online (Sandbox Code Playgroud)
将打开一个新的 Chrome 窗口,但无法导航,因为该 URL 方案未注册。在 Google.com 的控制台中,我看到以下错误日志
Failed to launch 'banana://launch' because the scheme does not have a registered handler.
我尝试在打开的窗口周围添加 try/catch,但这并没有像预期的那样给我任何东西,因为窗口正确打开。
我的问题是:我怎样才能捕捉到 google.com 似乎捕捉到的错误?
我对以下错误感到非常震惊,并且在过去 3 天中无法在任何地方找到解决方案,我最近升级到了 React Native 0.72.3,我认为 React-Native-reanimated 库存在一些问题。
错误是 ---- HostFunction 中的异常:java.lang.UnsatisfiedLinkError:dlopen 失败:找不到库“libreanimated.so”,js 引擎:hermes
尝试安装最新的 3.4.2 版本并回滚到以前的版本,但没有任何效果,
native ×10
reactjs ×4
android ×3
c++ ×2
react-native ×2
axios ×1
breakpoints ×1
bundler ×1
cmake ×1
config ×1
dart ×1
debugging ×1
flutter ×1
ionic-native ×1
javascript ×1
laravel ×1
platform ×1
ruby ×1
rubygems ×1