有没有人有版本控制和LabVIEW的经验?由于LabVIEW VI不是基于文本的,它是如何工作的?我想使用git,但我有几个问题:
在提交更改时,git是否识别VI中的差异或是否用新的文件替换整个文件?这会导致存储库的大量扩展吗?
是否有可能合并VI的不同版本?
或者是否有适用于LabVIEW的版本控制?
我实现了一个类来处理一些外部功能(例如,另一个DLL的功能)。这个函数给了我一个可以用作句柄的整数。这是我的代码的重要部分:
MyClass
{
public:
MyClass() {
handle = getHandlefromExternalFunction();
}
~MyClass {
if(handle>0)
freeHandleFromExternalFunction(handle);
}
MyClass& operator=(MyClass& other) {
freeHandleFromExternalFunction(handle);
handle = other.handle
other.handle = 0; //Is this a bad idea?
}
private:
int handle;
}
Run Code Online (Sandbox Code Playgroud)
在我的主要功能中,我有一个myClass对象。在某些时候,我正在使用赋值运算符来更改对象的值:
MyClass object;
//some code
object = MyClass();
Run Code Online (Sandbox Code Playgroud)
分配后,创建的对象MyClass()将立即销毁,因为它超出了范围。但是我不想freeHandleFromExternalFunction()被调用handle,因为我在分配的对象中使用它。因此,我在赋值运算符中更改了赋值对象的值handle = 0。我的问题是:这是个坏主意吗?有谁能更好地解决我的问题?
我在双打的向量转换成double数组中所看到这里:
不同的是,我想将指针a作为函数参数返回:
void getArray(double* a)
{
std::vector<double> v;
a = &v[0];
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,什么时候内存a被解除分配?或者我必须自己打电话delete[] a,这似乎很奇怪,因为我没有分配内存new.我已经阅读了上述答案的评论,但我仍不清楚.