我有一个DLL,我想使用它的一些功能.
#include <iostream>
using namespace std;
extern "C" __declspec(dllimport) int Initialize(char* localPort, char* adminServerName, int rpcTimeout);
int main()
{
int res = Initialize("7864", "6000@kabc", 10000);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我没有DLL的.lib文件,所以无论如何我可以链接到它.我想到的一件事是使用LoadLibrary函数,然后使用GetProcAddress().还有其他方法吗?
当我编译以下代码时
错误LNK2019:函数_main中引用的未解析的外部符号_ imp _Initialize
致命错误LNK1120:1个未解析的外部因素
我得到了上述错误
我正在使用Windows和Visual Studio 2008
继续这个问题:为什么不能降低Java子类中方法的可见性?
我需要创建B几乎与类相同的类A,除了B不能做某些事情A.
作为一个懒惰的程序员,我试图继承A,只是为了迎接错误,B不能降低A方法的可见性.咄!..
现在A是来自供应商的API,我的目的是封装此API,以便更容易使用.
我想知道解决这个问题的最佳做法是什么?
我认为TeamCity MSBuild替换有些问题.
我尝试使用MSBuild任务(NAnt Contrib)使用NAnt编译Delphi 2010项目(MSBuild兼容).
如果我在控制台上没有TeamCity的话,一切正常.
如果我使用TeamCity尝试,我收到以下错误消息:
Failed to detect default target(s) in the project file F:\CI\TeamCity\TeamCity\buildAgent\work\892195dab42324a3\build\src.temp\TestProject\Test.dproj. Please define targets explicitly in the build configuration options on TeamCity Web UI. Project does not define DefaultTargets or InitialTargets.
Run Code Online (Sandbox Code Playgroud)
我试图通过指向Rebuild目标的MSBuild/target开关显式设置目标.到目前为止没有运气.
有什么建议?提前致谢.
编辑:
<foreach item="File" property="iterator.dproj">
<in>
<items>
<include name="${src.temp}\**\*.dproj" />
</items>
</in>
<do>
<msbuild project="${iterator.dproj}">
<arg value="/target:Rebuild" />
</msbuild>
</do>
</foreach>
Run Code Online (Sandbox Code Playgroud)
*.dproj文件是一个标准的delphi 2010项目文件(它用xsl转换,但它仍然是一个有效的项目文件)
EDIT2:
谢谢你.ermakovich,我用直接调用NAnt替换了msbuild任务(来自NAnt contrib),这不会在TeamCity服务器上产生错误.看起来TeamCity只会替换对NAnt contrib msbuild任务的调用.:-)
<property name="msbuild.exe" value="${framework::get-framework-directory(nant.settings.currentframework)}\msbuild.exe" />
<foreach item="File" property="iterator.dproj">
<in>
<items>
<include name="${src.temp}\**\*.dproj" />
</items>
</in> …Run Code Online (Sandbox Code Playgroud) 每当用户按下最后一个字段上的选项卡时,我都会尝试更改焦点.我想将焦点放在另一个输入字段上.
我有以下javascript代码:
$("#input2").keydown(
function()
{
if(event.which == 9)
{
$("#input1").focus();
}
}
);
Run Code Online (Sandbox Code Playgroud)
这是我的试用HTML代码:
<div id="inputArea1">
<input id="input1" />
<input id="input2" />
</div>
Run Code Online (Sandbox Code Playgroud)
它似乎与keyup(改变焦点部分)一起工作但是然后我再也没有得到我想要的keyup.
我错过了什么?
我有一个我需要解决的问题.核心问题是我想在JPA中为JoinTable for ManyToMany关系添加额外的列.就我而言,我有以下实体.
主题是一个简单的实体,它有许多RemoteDocument(一个RemoteDocument可能被许多主题引用,因此它应该是ManyToMany关系).此外,RemoteDocument实体是只读的,因为它可能只能从Oracle物化视图中读取,而且禁止更改此物化视图.所以我想存储与某些主题相关的RemoteDocuments的顺序.事实上,我可以使用其他实体做类似的事情:
@Entity
public class Topic {
@Id
private Long id;
@Basic
private String name;
@OneToMany
private Set<TopicToRemoteDocument> association;
}
@Entity
public class RemoteDocument {
@Id
private Long id;
@Basic
private String description;
}
@Entity
public class TopicToRemoteDocument {
@OneToOne
private Topic topic;
@OneToOne
private RemoteDocument remoteDocument;
@Basic
private Integer order;
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,附加实体TopicToRemoteDocument帮助我用OneToMany替换ManyToMany关联并添加额外的字段顺序.
但我想拥有ManyToMany关系,但在连接表中配置了额外的列
我有一个.NET 4.0 WPF应用程序,用户可以在其中更改语言(文化)我只是让用户选择一种语言,创建一个相应的CultureInfo并设置:
Thread.CurrentThread.CurrentCulture = cultureInfo;
Thread.CurrentThread.CurrentUICulture = cultureInfo;
Run Code Online (Sandbox Code Playgroud)
在C#代码中,这很好用.然而,在WPF控制中,文化仍然是美国的.这意味着例如日期将以美国格式显示,而不是对当前文化正确的日期.
显然,这不是一个错误.根据MSDN和StackOverflow上的一些博客文章和文章,WPF语言不会自动遵循当前的文化.在您执行此操作之前,它是en-US:
FrameworkElement.LanguageProperty.OverrideMetadata(
typeof(FrameworkElement),
new FrameworkPropertyMetadata(
XmlLanguage.GetLanguage(CultureInfo.CurrentUICulture.IetfLanguageTag)));
Run Code Online (Sandbox Code Playgroud)
请参阅wpf中的StringFormat Localization问题.
我不完全理解这里发生了什么.似乎所有frameworkelements上的Language属性都设置为当前文化.无论如何,它的工作原理.我在应用程序启动时执行此操作,现在所有控件都按预期工作,例如日期根据当前文化格式化.
但现在的问题是:根据MSDN FrameworkElement.LanguageProperty.OverrideMetadata只能调用一次.事实上,如果我再次调用它(当用户更改语言时),它将抛出异常.所以我还没有真正解决我的问题.
问题:如何在我的应用程序生命周期中不止一次地和可靠地更新WPF中的文化?
(我在研究时发现了这个:http://www.nbdtech.com/Blog/archive/2009/03/18/getting-a-wpf-application-to-pick-up-the-correct-regional.aspx and it似乎他有一些工作在那里.但是,我无法想象如何在我的应用程序中执行此操作.似乎我必须在所有打开的窗口和控件中更新语言并刷新所有现有绑定等.)
在目录"data"中是这些文件:
command-1.9a-setup
command-2.0a-setup
command-2.0c-setup
command-2.0-setup
我想对文件进行排序以获得此结果:
command-1.9a-setup
command-2.0-setup
command-2.0a-setup
command-2.0c-setup
我试过这个
find /data/ -name 'command-*-setup' | sort --version-sort --field-separator=- -k2
Run Code Online (Sandbox Code Playgroud)
但输出是
command-1.9a-setup
command-2.0a-setup
command-2.0c-setup
command-2.0-setup
我找到的唯一方法给了我想要的输出
tree -v /data
Run Code Online (Sandbox Code Playgroud)
我怎样才能按需要的顺序对输出进行排序?
我们在新的Silverlight项目上使用Caliburn.Micro,并且每个人都工作得很好.内置约定将按钮单击事件绑定到viewModel,但我不确定在datagrids和comboboxes上处理selectionChanged事件的最佳方法是什么.
目前,我绑定到所选项目并调用自定义逻辑,但我觉得这有点代码味道,我应该分离属性和selectedChange事件的设置.但是,如果我将它们分开,如何通过命令将选择更改事件绑定到我的viewModel?还是一个EventTrigger?或者下面的代码是否可以接受?这是一个很小的变化,但我到处都是这个逻辑.
private Foo _selectedFoo;
public Foo SelectedFoo
{
get
{
return _Foo;
}
set
{
if (_Foo != null && _Foo.Equals(value)) return;
_Foo = value;
NotifyOfPropertyChange("SelectedFoo");
NotifyOfPropertyChange("CanRemove");
LoadRelatedBars();
}
}
Run Code Online (Sandbox Code Playgroud) 我见过一些使用的代码示例和教程
def main():
# my code here
if __name__ == "__main__":
main()
Run Code Online (Sandbox Code Playgroud)
但为什么?是否有任何理由不在文件顶部定义您的函数,然后只在其下编写代码?即
def my_function()
# my code here
def my_function_two()
# my code here
# some code
# call function
# print(something)
Run Code Online (Sandbox Code Playgroud)
我只是想知道主要有没有押韵?
java ×2
.net ×1
api ×1
asp.net ×1
bash ×1
c# ×1
c++ ×1
caliburn ×1
coding-style ×1
dllimport ×1
html ×1
javascript ×1
jpa ×1
jquery ×1
linker ×1
localization ×1
many-to-many ×1
msbuild ×1
nant ×1
oop ×1
python ×1
shell ×1
silverlight ×1
sorting ×1
teamcity ×1
version ×1
viewmodel ×1
visual-c++ ×1
wpf ×1