我正在努力使用这个MSDN指南使我的应用程序DPI敏感,其中缩放技术使用来自设备上下文的X和Y逻辑像素.
int _dpiX = 96, _pdiY = 96;
HDC hdc = GetDC(NULL);
if (hdc)
{
_dpiX = GetDeviceCaps(hdc, LOGPIXELSX);
_dpiY = GetDeviceCaps(hdc, LOGPIXELSY);
ReleaseDC(NULL, hdc);
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用缩放X和Y坐标
int ScaleX(int x) { return MulDiv(x, _dpiX, 96); }
int ScaleY(int y) { return MulDiv(y, _dpiY, 96); }
Run Code Online (Sandbox Code Playgroud)
是否曾经存在GetDeviceCaps(hdc, LOGPIXELSX)并且GetDeviceCaps(hdc, LOGPIXELSY)将为监视器返回不同数字的情况.我真的很关心的唯一设备是一台监视器所以我需要有独立ScaleX(int x)和ScaleY(int y)功能呢?我可以只使用一个Scale(int px)功能吗?这样做会有不利之处吗?
在此先感谢您的帮助.
我擅长使用Bloomberg API(它使用简单的调用,如= BDP("MS equity","ask")).我还有一个C#应用程序,它打开一个使用Bloomberg API的excel文件(通过interop).我在这里读到,当您通过互操作加载excel时,不会加载插件.我甚至尝试过使用那里建议的代码.但是,这似乎只适用于XLL和XLAM文件,看起来Bloomberg也使用了无法加载的DLL文件.有没有办法让所有这些插件通过互操作加载?
我有 ac# 函数,它在输入端查找文本模式并进行一些处理。(我使用的是 3.5 版本的 .net 框架)
public void func(string s)
{
Regex r = new Regex("^\s*Pattern\s*$", RegexOptions.Multiline | RegexOptions.ExplicitCapture );
Match m = r.Match(s);
//Do something with m
}
Run Code Online (Sandbox Code Playgroud)
该函数的使用可能如下所示
string s = "Pattern \n Pattern \n non-Pattern";
func(s);
Run Code Online (Sandbox Code Playgroud)
但是,我发现有时我的输入看起来更像这样
string s = "Pattern \r Pattern \r non-Pattern"
func(s);
Run Code Online (Sandbox Code Playgroud)
它没有被匹配。有没有办法在正则表达式中\r像 a 一样对待\n?我想我总是可以用\rs替换所有的\ns,但我希望如果我可以让正则表达式一次性完成所有操作,我可以最大限度地减少操作。
我有一个带有私有地图成员的模板类
template <typename T>
class MyClass
{
public:
MyClass(){}
private:
std::map<T,T> myMap;
}
Run Code Online (Sandbox Code Playgroud)
我想创建一个接受地图迭代器的私有方法
void MyFunction(std::map<T,T>::iterator &myIter){....}
Run Code Online (Sandbox Code Playgroud)
但是,这会产生编译错误:标识符'iterator'.我不需要传递一个抽象迭代器,因为MyFunction知道它是一个map迭代器(并且只会用作myMap的一个迭代器)并且会将其视为这样(访问和修改myIter-> second).将myIter-> second传递给MyFunction是不够的,因为MyFunction也需要能够使用++ myIter ;.
我正在使用 c#,据我了解(主要是使用 c++),获取系统时间DateTime.Now可能会很慢。我正在尝试通过使用计时器/来改进这一点Stopwatch
class Time {
private DateTime _starttime;
private Stopwatch _timer;
public Time() {
_timer = new Stopwatch();
_starttime = DateTime.Now; //trying to improve on multiple calls to `DateTime.Now` by only calling it once
_timer.start;
}
public DateTime Now {
get { return _starttime + _timer.Elapsed; }
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我的班级可以有一名成员private Time _time;,并_time.Now;可以在需要了解当前时间的任何时候拨打电话。
我当前的时间可能会稍微偏离一点(我正在尝试测量延迟并想知道我是否慢了几秒或更长时间),但我确实希望能够经常查看当前时间不会因大量系统调用而影响性能。
当我开始创建一些性能测试时,我想知道是否有人知道更好/不同的方法(或者也许有人知道我是否完全偏离基地)。
我有一个xts对象X.
dput(x)
structure(c(111.09, 110.95, 110.71, 110.79, 110.72, 110.83, 110.75,
110.74, 110.85, 110.95, 110.98, 120.99, 121.27, 120.61, 120.55,
120.76, 120.86, 120.82, 120.88, 121.1, 120.86, 120.76, 111.29,
111.08, 110.95, 110.88, 111.05, 111.17, 111.17, 111.17, 111.2,
111.19, 111.28), .Dim = c(11L, 3L), .Dimnames = list(NULL, c("val1",
"val2", "val3")), index = structure(c(1356987540, 1357160340,
1357246740, 1357333140, 1357592340, 1357678740, 1357765140, 1357851540,
1357937940, 1358197140, 1358283540), tzone = "GMT", tclass = c("POSIXct",
"POSIXt")), .indexCLASS = c("POSIXct", "POSIXt"), .indexTZ = "GMT", tclass = c("POSIXct",
"POSIXt"), tzone = "GMT", class …Run Code Online (Sandbox Code Playgroud)