我的项目在xp32中编译,链接和运行,然后我尝试将其交叉编译为x64,我遇到了很多问题:
我真的迷失了这件事.我做了很多搜索,发现没什么能帮助我理解,直到妈妈.
那么,路径是什么?我想知道如何制作原生的x64 OpenGL应用程序?
我刚刚在virtualbox.org上发布了同样的问题.http://forums.virtualbox.org/viewtopic.php?f=9&t=26702&p=119139#p119139
如果没有违反任何规则,我会更加关注它,因为stackoverflow承诺更有活力!
"嗨,我做了一些搜索,找不到任何工具来从虚拟框中的早期启动调试来宾系统.虽然,我遇到了JCP,一个java中的x86模拟器,它不是那么强大和美观但是有一个调试模式在可以查看物理内存的地方,CPU可以注册其他内容.它还可以逐步执行CPU指令并设置断点,观察点和条件点.虚拟盒中有这样的东西吗?
我认为拥有它并且能够在运行时检查系统会很棒.了解PC架构或作为开发内核的工具.
在你认为它的好主意(我认为是)的情况下如何实现?我有兴趣开发这样的东西,并想知道它是否可行,如果还没有实现的话."
EDT:现代x86是否能够在cpu周期之后中断其执行并将执行地址传递给另一个代码来执行此操作?是的,可以设置陷阱标志以使处理器处于逐步执行模式.x86将执行一条指令并调用INT 3.
经过长时间的高级编程后,我只是触摸了x86指令集的表面.大约20年来,我第一次阅读x86汇编编程,从我的谷歌搜索中我得到了大量的指令集引用; 从那些将新一代处理器(286,386,486 ......)与其他添加更新x86指令的处理器混合在一起的处理器.更不用说AMD的变化.
由于我打算构建一个引导装载程序,我首先想到的是完全符合'标准x86',但我无法弄清楚它的位置,甚至它是否存在于任何地方.
甚至英特尔的文档似乎都遵循相同的路径,就像另一个人说的那样,"我们需要x86指令集标准化,操作码的演变是混乱的".
持有标准化旗帜并不是我的想法.我只想看看路,了解哪里是安全的行走地点.如果有人可以提供帮助,我会非常感激!
我想在我的spring应用程序中创建一个"First Access Database Setup Process",我唯一想象的解决方案就是以编程方式初始化DataSource bean.
我当前的bean定义为:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/catalog" />
<property name="username" value="condominium" />
<property name="password" value="password" />
<property name="validationQuery" value="SELECT 1" />
<property name="testOnBorrow" value="true" />
<property name="defaultAutoCommit" value="false" />
<property name="maxWait" value="5000" />
</bean>
Run Code Online (Sandbox Code Playgroud)
但理想的是每当我需要它时,我自己加载它并使用我定义的参数.
场景是用户(管理员)第一次来到应用程序,我问他要连接的服务器,端口和目录.我将它存储在一个embeeded db中,下次应用程序启动时,bean可以检查是否在嵌入式db上设置了参数并再次加载它.
可能吗?
EDT:每个@axtavt sugestion我用代理人来...
<bean id="dataSource" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="targetSource" ref="swappableDataSource"/>
</bean>
<bean name="swappableDataSource" class="org.springframework.aop.target.HotSwappableTargetSource">
<constructor-arg ref="dummyDataSource"/>
</bean>
<bean id="dummyDataSource" factory-bean="dataSourceFactory" factory-method="createDataSource" destroy-method="close"/>
<bean id="dataSourceFactory" class="com.condominium.spring.factory.DataSourceFactory"/>
Run Code Online (Sandbox Code Playgroud)
一旦使用代理实现了如何将其转换为原始Bean?
Object o = ctx.getBean("dataSource");
BasicDataSource ds = …
Run Code Online (Sandbox Code Playgroud) 我想要一个带有窗口创建和管理代码的 DLL,开发人员只需添加一个命名的 main.h 标头并加载 DLL 即可实例化一个窗口。
#include "dllheader.h"
void user_main();
main = user_main; // attach user main to the dll callback
int user_main() {
Window *w = new Window();
}
Run Code Online (Sandbox Code Playgroud)
在 DLL 端,代码应该如下所示
void (*main)() = NULL;
int WinMain(...) {
if(main)
main(); // call the user defined funcion
while(!done) {
if(messageWaiting()) {
processMessage();
}
}
}
Run Code Online (Sandbox Code Playgroud)
为什么?因为我想部署一个窗口包装器并避免让用户编写 WinMain 入口点。但是 DLL 项目有一个 DLL main 和一个 win32 项目,如果链接器没有找到 winMain 入口点,则该项目使用 DLL complaim。
这种安排有已知的解决方案吗?
我正在向绑定到DataGridView的BindingSource添加一个新的Row
source.AddNew();
Run Code Online (Sandbox Code Playgroud)
在此之后,使用BindingSource获取新添加的行,在其排序时返回DataGridView中的下一行.
ROW "A"
ROW "B" <- myBindingSource.AddNew();
ROW "C"
Run Code Online (Sandbox Code Playgroud)
myBindingSource.Current给出ROW"C".(它成为DataGridView中的选定行)
我需要这个,因为我想只更新新添加的行
DataRowView drv = (DataRowView)myBindingSource.Current;
myTableAdapter.Update(drv.Row);
Run Code Online (Sandbox Code Playgroud)
而不是整个表.
myTableAdapter.Update(myDataSet.myTable);
Run Code Online (Sandbox Code Playgroud)
而且,我想在插入后在DataGridView中选择这个新添加的行.
有可能吗?
我有一个通过委托调用的回调。在其中,我需要处理从记录过程到达的缓冲区数据。通常,在非托管上下文中,我可以对 dwParam1 执行reinterpret_cast 来获取对象引用。但在托管上下文中,如何将 DWORD_PTR 转换为托管对象引用?
static void WaveInProc(HWAVEIN hwi, UINT uMsg, DWORD_PTR dwInstance, DWORD_PTR dwParam1, DWORD_PTR dwParam2)
{
ControlLib::SoundDevice^ soudDevice = ?cast_native2managed?(dwParam1);
Run Code Online (Sandbox Code Playgroud) 在处理JSon时,某些值为null Freemarker在?eval中给出错误.
与mapper.setSerializationInclusion(Inclusion.NON_NULL)
我能避免这一点,但我错过了产生JSON此信息.
有一种方法可以用这个空值来实现评估吗?
<#assign test = "{\"foo\":\"bar\"}">
<#assign m = test?eval>
${m.foo} <#-- prints: bar -->
Run Code Online (Sandbox Code Playgroud)
评估失败
<#assign test = "{\"foo\":null}">
<#assign m = test?eval> <#-- fail in eval -->
${m.foo}
Run Code Online (Sandbox Code Playgroud) 这个代码有没有达到第一个的原因?我从vairous来源得到了完全相同的东西.比我做了自己的封装.一切都很顺利.创建窗口,处理消息,生成事件到客户区域中的keyborad输入,gl画布工作正常(当我强制它绘制时).
唯一的问题是消息循环永远不会离开第一个if.:/我真的被卡住了.
while (!done)
{
if (::PeekMessage (&msg, NULL, 0, 0, PM_REMOVE))
{
if (msg.message == WM_QUIT)
{
done = TRUE;
}
else
{
::TranslateMessage (&msg);
::DispatchMessage (&msg);
}
}
else
{
// Code is never reaching this!
draw ();
::SwapBuffers(hDC);
idle ();
}
}
return msg.wParam;
Run Code Online (Sandbox Code Playgroud) 我可以用某种方式链接这样的成员函数吗?将方法重新声明为成员并让它调用Mmsystem.h方法而不必包装它?
#include <windows.h>
#include <Mmsystem.h>
namespace SoundLib {
public class CWave
{
public:
// WaveIn call
external UINT waveOutGetNumDevs(VOID);
};
}
Run Code Online (Sandbox Code Playgroud) winapi ×5
c++ ×4
assembly ×2
opengl ×2
64-bit ×1
c# ×1
c++-cli ×1
datagridview ×1
datasource ×1
debugging ×1
dll ×1
emulation ×1
freemarker ×1
jackson ×1
json ×1
kernel ×1
managed-c++ ×1
opcode ×1
pointers ×1
spring ×1
virtualbox ×1
winforms ×1
x86 ×1