小编Rub*_*oso的帖子

如何在64位Windows中制作OpenGL应用程序?

我的项目在xp32中编译,链接和运行,然后我尝试将其交叉编译为x64,我遇到了很多问题:

  1. 没有原生x64不稳定的OpenGL SDK所以我链接到什么?
  2. 我看到有人说x64应用程序使用32位opengl dll.我试图在xp64中使用驱动程序运行我编译的64位应用程序到我的视频卡(radeon 4850),我在xp32上使用的相同,我得到了典型错误"bla bla bla,也许重新安装应用程序将解决问题"
  3. 如果我使用视频卡驱动程序如何使其与其他卡一起使用,我应该为每个卡构建一个版本吗?(没意义).我应该加载一个可用的库dinamicaly吗?(同样没有意义)
  4. 哪个是x64的参考实现?我在哪里可以找到它的libs链接?

我真的迷失了这件事.我做了很多搜索,发现没什么能帮助我理解,直到妈妈.

那么,路径是什么?我想知道如何制作原生的x64 OpenGL应用程序?

c++ opengl 64-bit winapi visual-studio-2005

16
推荐指数
1
解决办法
3万
查看次数

在虚拟盒中调试客户操作系统的工具

我刚刚在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.

debugging assembly kernel virtualbox emulation

12
推荐指数
2
解决办法
1万
查看次数

x86指令集路线图

经过长时间的高级编程后,我只是触摸了x86指令集的表面.大约20年来,我第一次阅读x86汇编编程,从我的谷歌搜索中我得到了大量的指令集引用; 从那些将新一代处理器(286,386,486 ......)与其他添加更新x86指令的处理器混合在一起的处理器.更不用说AMD的变化.

由于我打算构建一个引导装载程序,我首先想到的是完全符合'标准x86',但我无法弄清楚它的位置,甚至它是否存在于任何地方.

甚至英特尔的文档似乎都遵循相同的路径,就像另一个人说的那样,"我们需要x86指令集标准化,操作码的演变是混乱的".

持有标准化旗帜并不是我的想法.我只想看看路,了解哪里是安全的行走地点.如果有人可以提供帮助,我会非常感激!

x86 assembly opcode

7
推荐指数
1
解决办法
907
查看次数

在代码上定义DataSource bean

我想在我的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)

spring datasource

7
推荐指数
1
解决办法
2万
查看次数

将 Windows 消息循环封装到 DLL 中

我想要一个带有窗口创建和管理代码的 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。

这种安排有已知的解决方案吗?

c++ dll winapi

5
推荐指数
1
解决办法
2779
查看次数

选择新添加的Row - DataGridView和BindingSource

我正在向绑定到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中选择这个新添加的行.

有可能吗?

c# datagridview bindingsource sql-server-ce winforms

4
推荐指数
1
解决办法
2万
查看次数

将本机指针转换为 C++\CLI 托管对象引用?

我有一个通过委托调用的回调。在其中,我需要处理从记录过程到达的缓冲区数据。通常,在非托管上下文中,我可以对 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)

winapi pointers managed-c++ c++-cli

3
推荐指数
1
解决办法
4708
查看次数

使用Freemarker评估带有null值的JSon

在处理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)

json freemarker jackson

3
推荐指数
1
解决办法
1928
查看次数

Windows消息循环

这个代码有没有达到第一个的原因?我从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)

c++ opengl winapi

1
推荐指数
1
解决办法
2619
查看次数

将成员函数直接链接到标头中声明的C方法

我可以用某种方式链接这样的成员函数吗?将方法重新声明为成员并让它调用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)

c++ winapi

0
推荐指数
1
解决办法
215
查看次数