我刚刚在Visual C++ 2010下使用XLW发现了用于Excel的XLL编程世界,到目前为止,使用XLW包提供的模板一切顺利,我有几个问题:
谢谢,史蒂夫
说我有一个MyCollection对象的集合MyClass.
是否Set MyCollection = Nothing调用每个包含对象的析构函数,还是应该= Nothing单独设置每个对象?
我显然关心内存泄漏的原因.
Dim MyCollection As Collection
Set MyCollection = New Collection
... 'add objects of type MyClass here
Set MyCollection = Nothing
Run Code Online (Sandbox Code Playgroud)
销毁这个类会调用每个对象的析构函数吗?
Web Crypto API 提供了将私钥或公钥保存为客户端 IndexedDB 数据库中特殊的、不透明类型的对象的可能性,即客户端和 JS 运行时可以使用 CryptoKey,但无法拼写出来。另外,在生成或导入所述密钥时,可以规定该密钥是不可提取的。
我的目标是将个人私钥保存在用户的客户端设备上,并将其用作他的数字签名。对我来说,重要的是要知道在设备之间传递此加密密钥有多困难或容易,我的用户将此加密密钥提供给他的朋友或将其复制到他的另一台设备有多困难。
最近,因为我移动到Excel 2010 64位,我发现我使用的许多加载项(XLL)经常停止工作(当我尝试添加时,Excel报告"无效的加载项"错误).
是否始终认为32位内置加载项永远不会与64位Excel兼容,或者只是我的加载项的情况?
由于 Excel Solver 在数千次优化上运行速度相当慢(原因是它使用电子表格作为界面),我试图在 C++ 中实现类似的(特定于问题的)求解器(使用 Visual Studio 2010,在 Win 上) 7 64 位平台)。我会通过 VBA 中的 Declare 语句包含 DLL,并且已经有这样做的经验,所以这不是问题。
我的问题是最小化经验数据和非线性但平滑的目标函数之间的平方误差之和,并且问题将包括非负性(X>=0)甚至正性约束(例如X>=0.00000001) ,其中 X 表示决策变量。
我正在寻找一个强大的、经过验证的实现。它可能是已建立的图书馆的一部分。例如,我已经研究过 ALGLIB 所存储的内容(请参阅http://www.alglib.net/optimization/),并且似乎只有他们的算法之一接受有界约束。但我不知道它的价值是什么,这就是为什么我试图收集一些意见。
或者,另一方面,是否建议用这样的基本约束来增强 ALGLIB 的 Levenberg-Marquardt 算法,例如拒绝每个不满足我的约束的中间解决方案?(我猜这不会成功,但仍然值得一问)
我的主要固定机器是运行Win 8.1 64位和Office 2013 32位的Windows机器.我开发了一个带有VS2013功能的32位DLL,我通过Excel VBA包含它.功能在Windows上运行正常.
然后我在Parallels 8下运行Windows 8.1 64位和Office 32 32位Macbook Pro.我似乎无法使用此Mac下的DLL中的函数.
我怎么试过:
C:\MyToolsParallels下的新文件夹.在VBA中加载DLL时引用此文件夹.从DLL加载函数的我的VBA代码如下所示
Declare Function MyDLLfunction Lib "C:\MyTools\MyDLL.dll" (ByVal s As Double) As Double
我也试过双斜线\\无济于事
从我在Parallels上的工作表中使用此功能时出现的不良结果是单元格中显示错误代码(#VALUE).
是不是Excel 2010与一般的DLL兼容(不能相信),或者是在Mac上正确引用DLL的路径?我认为C:\MyTools\MyDLL.dll这样可行,因为这是我在Parallels的Windows资源管理器树中看到的文件.或者我的Parallels 8太过时了?
我的Chrome扩展程序项目使用https://github.com/tfoxy/chrome-promise/blob/master/chrome-promise.js中的Chrome-Promise模块,以宣传Chrome API的回调式功能.
使用Babel 6实现项目的传输一直很好.最近我搬到了Babel 7.从那时起,当我允许通过Babel转换chrome-promise.js文件时,这会导致运行扩展时出现" 未捕获的ReferenceError:ChromePromise未定义 "错误.当我离开chrome-promise.js时,该程序运行良好,未经传输.
这是我的webpack配置js文件的摘录:
module.exports = {
mode: 'production',
entry: {
cs: ['./build/cs.js'],
bg: ['./build/bg.js'],
popup: ['./build/popup.js'],
chromepromise: ['./build/chromepromise.js']
},
output: {
path: path.join(__dirname, 'build'),
filename: '[name].js'
},
module: {
rules: [{
test: /\.js$/,
exclude: [/node_modules/],
loader: "babel-loader"
}]
},
Run Code Online (Sandbox Code Playgroud)
和我的一个带有Babel设置的package.json:
{
"name": "Test_CRX",
"version": "1.0.0",
"main": "cs.js",
"scripts": {
"build": "node build",
},
"keywords": [],
"author": "",
"license": "ISC",
"description": "",
"dependencies": {
"@babel/runtime": "^7.1.2",
"archiver": "^3.0.0",
"babel-polyfill": "^6.26.0",
"babel-regenerator-runtime": "^6.5.0",
"chrome-promise": "^3.0.1", …Run Code Online (Sandbox Code Playgroud) javascript google-chrome-extension webpack babeljs chrome-promise
我习惯使用 VBA 中的 write 命令将一系列单元格的内容(值)写入文本文件,例如:
write #myfile, Range("A1").value, Range("A2).value, Range("A3).value
是否存在更优雅和方便的内置方法来将整个范围直接转储到分隔文件,甚至可能一次转储多行?或者有人提出了定制的解决方案吗?我认为这将非常有用。
以下Python代码行
values = ", ".join(["\"%s\"" % x for x in row])
Run Code Online (Sandbox Code Playgroud)
获取"row"中的元素列表以创建逗号分隔的字符串"values",而每个值都放在双引号中,例如:"New York","5","","3.2"
但是,由于结果是mysqldump文件的一部分,空字段("")应该变为NULL(不带双引号).
因此,我想学习如何更改该表达式,以便检查x是否为空(""),在这种情况下,NULL应该附加到值字符串.
谢谢