小编opt*_*enk的帖子

如何使用Code :: Blocks链接到库?

C++ GUI教程:对TextOut的未定义引用

我有同样的问题,但我是编程和Code :: Blocks的新手,我想使用GDI32库.我该如何安装?我很困惑,因为我可以使用windows.h标头,但有些功能TextOut不可用.

c++ winapi codeblocks

18
推荐指数
1
解决办法
10万
查看次数

如何绑定子类的类类型

我有这门课:

public abstract class Addressable {

  abstract <T extends "this" Addressable> void hardEquals(T t);

}
Run Code Online (Sandbox Code Playgroud)

方法hardEquals(T t)不是我想要的.我想要的是将T绑定为同一类this.换句话说,当我Addressable使用具体类扩展类时MyAddressable,我希望该方法hardEquals()具有签名:

void hardEquals(MyAddressable t);
Run Code Online (Sandbox Code Playgroud)

为了完整性:

public class MyAddressable extends Addressable {

  void hardEquals(MyAddressable t);

}
Run Code Online (Sandbox Code Playgroud)
  1. 有可能实现我想要的吗?
  2. 如果答案是否定的,我的班级约束是否如此愚蠢?

java generics

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

创建并安装自己的模块

我想创建一个模块,并将其加载到haskell库中.我可以使用haskell-platform的工具与ubuntu 11或Windows 7一起工作.这是我的模块:

module Pkr.Element(..) where

import Char

data Card = Card Int deriving (Eq)

seme :: Card -> Int
seme (Card x) = mod (div x 13) 4

label :: Card -> Int
label (Card x) = mod x 13

instance Ord Card where
(>) x y     |ix == iy       = False
        |ix == 0        = True
        |iy == 0        = False
        | otherwise     = (ix > iy)
        where 
        ix = label x
        iy = label y

instance Show …
Run Code Online (Sandbox Code Playgroud)

haskell

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

下拉菜单不起作用

我正在开发一个简单的Web应用程序,并且正在使用两个js库:dat.gui和three.js。

我的问题是下拉菜单被锁定。我打不开

// gui initialization (dat.gui)
function initGui() {

    var Options = function() {
        this.tenda = 'bar';
    };

    config = new Options();
    var gui = new dat.GUI();
    var subGui = gui.addFolder('Setting');
    subGui.open();

    // callbacks
    subGui.add( config, 'tenda', ['bar', 'pie', 'area']).
        onChange(
            function() {
                if (config.tenda === 'bar') { ... }
                else if (config.tenda === 'pie') { ... }
                else if (config.tenda === 'area') { ... }
            }
        );
};
Run Code Online (Sandbox Code Playgroud)

在网络上阅读,这似乎是一个已知问题,但是在某些示例中,我看到下拉菜单运行良好。我是js的新手,所以我认为“也许存在一些范围问题”,因此我将初始化过程放在了一个可以正常工作的函数中。但是问题仍然存在。

我正在使用Ubuntu / Chrome和Ubuntu / Firefox。您可以在此处检查整个代码,在这里我使用复选框而不是下拉菜单。

javascript three.js dat.gui

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

尝试为数据类型定义实例时无限循环

我有一个安装模块,数据类型卡.我把它作为类Show的实例,但是在ghci中出了点问题:

 module Poker where

 data Card = Card Int 

 ...

 instance Show Card where
 show card = ...

 ...
Run Code Online (Sandbox Code Playgroud)

我打开ghci并输入:

>:m + Poker
>Card 0
..
..
..
(Nothing) => I stop the execution
>Poker.show (Card 0)
> "Ace of Hearts"
Run Code Online (Sandbox Code Playgroud)

看来我的数据类型不是Show类的实例,为什么?


谢谢大家!有用!:)

haskell ghci

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

使用类型类Ord的方法的无限循环

我定义了一种数据类型:

Data Card = Card Int deriving (Show, Eq)
Run Code Online (Sandbox Code Playgroud)

(我也定义了一个类型同义词:

Type Cards = [Card]
Run Code Online (Sandbox Code Playgroud)

)

然后使它成为:

 instance Ord Card where
    x > y   |ix == iy   = False
            |ix == 0    = True
            |iy == 0    = False
            |otherwise  = (ix > iy)
        where 
            ix = label x
            iy = label y
Run Code Online (Sandbox Code Playgroud)

然后当我输入:

 (Card x) > (Card y) :: x,y are Int 
Run Code Online (Sandbox Code Playgroud)

它工作,但当我输入:

 [(Card x)] > [(Card y)] :: x,y are Int 
Run Code Online (Sandbox Code Playgroud)

它进入循环.

为什么会这样?我如何解决它?

haskell

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

如何用erlang api解析标准输入?

我正在Erlang开发游戏,现在我需要阅读标准输入.我尝试了以下调用:

io:fread() 
io:read()
Run Code Online (Sandbox Code Playgroud)

问题是,当它包含空格时,我无法读取整个字符串.所以我有以下问题:

  1. 当我按下回车键时,如何读取用户键入的字符串?(记住该字符串包含空格)
  2. 如何在数字56中转换像"56"这样的字符串?

erlang

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

格式化长模式匹配

我希望格式化这个功能:

getEnv :: [Func] -> ([Char] -> RetType)
getEnv [] = (\_ -> undefined)
getEnv ((Func (RetTypeType t) (Ident fname) _ _):fs) = (\x -> if x == fname then t else getEnv fs)
Run Code Online (Sandbox Code Playgroud)

问题是由长模式匹配引起的,现在我不想更改构造函数的名称.此外,第三行功能的右侧部分对我来说也不容易格式化.

虽然不是生死攸关的问题,但我很好奇你如何格式化这段代码.谢谢.

haskell code-formatting

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

从obj文件中绘制模型

我正在尝试用openGl编写一个obj查看器.这个程序只需绘制模型面的线条,所以我需要加载:

  • 顶点:有时是3D,有时是4D;
  • faces:索引列表,随机长度;

现在我只加载obj文件,每面有3个元素,所以我可以在GL_TRIANGLE模式下绘制元素,但是我遇到了一些模型的麻烦:

http://people.sc.fsu.edu/~jburkardt/data/obj/icosahedron.obj

加载阶段似乎运行良好,我认为问题出在render()函数中:

static void render(void)
{
    glClearColor( 0.0f, 0.0f, 0.0, 0.0f);
    glClear(GL_COLOR_BUFFER_BIT);

    glBindBuffer(GL_ARRAY_BUFFER, g_resources.vertex_buffer);
    glEnableClientState(GL_VERTEX_ARRAY);
    glVertexPointer(
        3,                                /* size */
        GL_FLOAT,                         /* type */
        3*sizeof(GLfloat),                /* stride */
        (void*)0                          /* array buffer offset */
    );

    glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, g_resources.element_buffer);

    glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
    glEnable(GL_CULL_FACE);
    glCullFace(GL_BACK);

    glDrawElements(
        GL_TRIANGLES,           /* mode */
        theModel->face.size(),  /* count */
        GL_UNSIGNED_INT,        /* type */
        (void*)0                /* element array buffer offset */
    );

    glDisableClientState(GL_VERTEX_ARRAY);

    glutSwapBuffers();
}
Run Code Online (Sandbox Code Playgroud)

我还有一些问题:

  • indeces从1或0开始?
  • 什么是关于indeces枚举?是顺时针方式吗?
  • 这是一个很好的解决方案,三角形超过3个三角形?

c++ opengl

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