小编Suk*_*asa的帖子

使用正则表达式查找不在html标记中的特定字符串

我正在尝试使用的特定正则表达式有些困难.我在文档中搜索字符串的每次出现(为了我的目的,我会说它是" mystring "),除了它在标签中的位置,例如

<a href="_mystring_">
Run Code Online (Sandbox Code Playgroud)

不应该匹配,但是

<a href="someotherstring">_mystring_</a>
Run Code Online (Sandbox Code Playgroud)

应该匹配,因为它不在标签内部(内部意思是"在<和>标记内")我也使用.NET的正则表达式函数.

.net html regex

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

KeyDown事件没有使用.NET WinForms触发?

我已经 KeyPreview 在表单属性中设置为true

我正在开发一个小程序,我遇到一个问题,当我按下并释放任何箭头键时,组件盒内部的某些控件似乎没有触发我的表单上的KeyDown事件,只是KeyUp事件.我的代码是否有问题可能导致此问题?

具体来说,我已经在表单上启用了KeyPreview,并e.SuppressKeyPress = True在两个子例程中设置了断点,并且只有frmMain_KeyUp的断点点击了断点.

我添加了两个GroupBox事件,希望可以缓解这个问题,但没有这样的运气.但是,我在表单上有一个自定义控件,专门编码忽略这些按键,代码按预期工作.

  Private Sub frmMain_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown, GroupBox1.KeyDown, GroupBox2.KeyDown
      e.SuppressKeyPress = True
      Select Case e.KeyCode
          Case Keys.Left
              ScrollDir = ScrollDir Or 1
          Case Keys.Right
              ScrollDir = ScrollDir Or 2
          Case Keys.Down
              ScrollDir = ScrollDir Or 4
          Case Keys.Up
              ScrollDir = ScrollDir Or 8
          Case Else
              e.SuppressKeyPress = False
      End Select
      tScroll.Enabled = True
      tScroll_Tick(Nothing, Nothing)
  End Sub

  Private Sub frmMain_KeyUp(ByVal sender As Object, ByVal e …
Run Code Online (Sandbox Code Playgroud)

vb.net winforms

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

C++ - 派生类中的"未声明成员函数"

我在MSVC++ 2008中遇到问题,其中VS2008抛出了这个编译错误:

error C2509: 'render' : member function not declared in 'PlayerSpriteKasua'
Run Code Online (Sandbox Code Playgroud)

现在,令我困惑的是,render()已定义,但是在继承的类中.

类定义的工作方式如下:

SpriteBase -Inherited By-> PlayerSpriteBase -Inherited By-> PlayerSpriteKasua
Run Code Online (Sandbox Code Playgroud)

因此,SpriteBase.h的精简版本如下:

class SpriteBase {
public:
  //Variables=============================================
  -snip-
  //Primary Functions=====================================
  virtual void think()=0;                         //Called every frame to allow the sprite to process events and react to the player.
  virtual void render(long long ScreenX, long long ScreenY)=0; //Called every frame to render the sprite.
  //Various overridable and not service/event functions===
  virtual void died();                            //Called when the sprite is killed either externally …
Run Code Online (Sandbox Code Playgroud)

c++ virtual inheritance class abstract

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

Createinstance() - 我这样做了吗?

我正在尝试用.NET组装一个插件系统,我不确定我是否正确地进行了操作.该系统的基础是一个特定的目录({apppath}/Plugins /)将有一堆预编译的DLL,我想通过反射来查看每个目录,并且对于每个可用的类,如果它继承了特定的基类(这是在另一个DLL中定义的,但我将在稍后介绍),然后创建它的实例并在所述实例中调用特定的函数.

Public Sub ScanPluginsInDirectory(ByVal Directory As String)

    Dim Plugins As New IO.DirectoryInfo(Directory)
    Dim Files As IO.FileInfo() = Plugins.GetFiles("*.dll")
    Dim CryptType As Type = GetType(CryptPluginBase)
    Dim PluginsData as List(Of LoadedPluginsInfo)

    For Each DllFile As IO.FileInfo In Files
        Try
            Dim thisAsm As Assembly = Assembly.LoadFrom(DllFile.FullName)
            Dim ClassDefs = thisAsm.GetTypes().Where(Function(type) CryptType.IsAssignableFrom(type))

            For Each ClassDef As Type In ClassDefs
                Dim A As Object
                A = ClassDef.Assembly.CreateInstance(ClassDef.Name)
                PluginsData.Add(New LoadedPluginsInfo(A.Plugin(), False))
            Next
        Catch ex As Exception
            Continue For
        End Try
    Next
End Sub
Run Code Online (Sandbox Code Playgroud)

我遇到的具体问题是,我不确定这是否是正确的方法.如果可以假设A.Plugin() …

.net vb.net reflection late-binding

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

在.NET中将元数据写入PNG图像

我看到了几个问题,询问如何从图像中读取元数据,但我没有看到很多人询问如何编写元数据.基本上,我需要将一个元数据项("ImageDescription")添加到我正在动态生成的PNG图像中(创建一个Bitmap对象并在程序上生成其中的所有内容).

在将文件写入磁盘之前或之后,使用.NET向图像添加元数据的最佳方法是什么?

.net vb.net png system.drawing metadata

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

映射分支切片路径

我正在做一个游戏(并且已经对它提出了几个问题),现在我还有一个问题要问你们.

这个游戏中的关卡格式被设置为Uint16的平铺图(我正在使用SDL),这是tilemapData结构数组的索引.tilemapData结构的一个位是isConductive位/布尔值.

这个位的使用基本上是创建将各种对象连接成一个"powerNet"的路径.我在下面有一些关于当前方法的代码(可行,但我会介绍为什么我真的讨厌它)

void findSetPoweredObjects(unsigned long x, unsigned long y, powerNetInfo * powerNet) {
  //Look for poweredObjs on this tile and set their powerNet to the given powernet
  for (int i = 0; i < level->numChunks[CHUNKTYPE_POWEREDDEF]; i++)
    if (level->poweredObjects[i]->position[0] == x && level->poweredObjects[i]->position[1] == y)
      level->poweredObjects[i]->powerNet = powerNet, powerNet->objectsInNet++;
}

void recursiveCheckTile(bool * isWalked, powerNetInfo * powerNet, unsigned long x, unsigned long y, tilemapData * levelMap) {
  //If out of bounds, return
  if (x < 0 || y < 0 …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm pathing tile-engine

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

realloc崩溃在以前稳定的功能

显然SDL_Mixer中的这个功能一直在死,我不知道为什么.有没有人有任何想法?根据visual studio的说法,崩溃是由Windows在realloc()行的某处触发断点引起的.

有问题的代码来自SDL_Mixer的SVN版本,如果这有所不同.

static void add_music_decoder(const char *decoder) 
{ 
  void *ptr = realloc(music_decoders, num_decoders * sizeof (const char **)); 
  if (ptr == NULL) { 
    return; /* oh well, go on without it. */ 
  } 
  music_decoders = (const char **) ptr; 
  music_decoders[num_decoders++] = decoder; 
} 
Run Code Online (Sandbox Code Playgroud)

我正在使用Visual Studio 2008,music_decoders和num_decoders都是正确的(music_decoders包含一个指针,字符串"WAVE"和music_decoders.ptr是0x00000000,我能说的最好,崩溃似乎在realloc中()函数.有没有人知道如何处理这个崩溃问题?我不介意做一些重构以使这项工作,如果它归结为那.

c++ windows breakpoints realloc visual-studio-2008

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