问题列表 - 第15216页

不要在自己的静态库中公开已使用库中的符号

我正按照此处提供的说明为iPhone编写可重复使用的静态库.

我想minizip在内部使用我的库,但不想将它暴露给用户.

用户应该可以自己包含minizip,可能是不同的版本,并且不会导致与我的"内部"迷你剪辑版本发生冲突.

这可能吗?

编辑:

我已经尝试-fvisibility=hidden为minizip文件添加额外的编译器标志并将函数更改为__private_extern____attribute__((visibility("hidden"))),但它似乎仍然生成定义的外部符号:

00000918 T _unzOpen
0000058e T _unzOpen2
00001d06 T _unzOpenCurrentFile
00001d6b T _unzOpenCurrentFile2
...
Run Code Online (Sandbox Code Playgroud)

编辑#2:

显然,标记有这些注释的符号仅由链接器设为私有,这在Xcode构建源时不会发生,因为它添加了-c参数("编译或汇编源文件,但不链接.")

c iphone objective-c

15
推荐指数
2
解决办法
7506
查看次数

在Javascript中增加CSS padding-top属性

我有一个CSS定义为 div

#myDiv
{
  padding-top: 20px,
  padding-bottom: 30px
}
Run Code Online (Sandbox Code Playgroud)

在JS函数中,我想将值增加padding-top10px

function DoStuff()
{
  var myDiv = document.getElementById('myDiv');
  //Increment by 10px. Which property to use and how? something like..
  //myDiv.style.paddingTop += 10px;
}
Run Code Online (Sandbox Code Playgroud)

javascript css

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

如果单击一个触发JavaScript的链接,如何阻止网页滚动到顶部?

当我有一个与jQuery或JavaScript事件连接的链接,例如:

<a href="#">My Link</a>
Run Code Online (Sandbox Code Playgroud)

如何防止页面滚动到顶部?当我从锚点中删除href属性时,页面不会滚动到顶部,但链接似乎不是可点击的.

html javascript

133
推荐指数
8
解决办法
14万
查看次数

互斥锁定仅写入

我有一个多线程C++应用程序,它在内存中保存一个复杂的数据结构(缓存数据).

我刚读完数据时一切都很棒.我可以拥有尽可能多的线程来访问数据.

但是,缓存的结构不是静态的.

  • 如果请求的数据项不可用,它将从数据库中读取,然后插入到数据树中.这可能也没有问题,即使我使用互斥锁,而我将新数据项添加到树只需要几个周期(它只是添加一个指针).
  • 有一个垃圾收集过程不时被执行.它会从树中删除所有旧项目.为此,我需要将整个事情锁定,以确保当前没有其他进程正在访问将从内存中删除的任何数据.我还必须在从缓存中读取时锁定树,这样我就不会在处理它们时删除它们(有点"反之亦然").

"伪":

function getItem(key)
   lockMutex()
   foundItem = walkTreeToFindItem(key)
   copyItem(foundItem, safeCopy)
   unlockMutex()
   return safeCopy
end function

function garbageCollection()
   while item = nextItemInTree
      if (tooOld) then
         lockMutex()
         deleteItem(item)
         unlockMutex()
      end if
   end while
end function
Run Code Online (Sandbox Code Playgroud)

什么困扰我:这意味着,我在阅读时必须锁定树(以避免在我阅读时开始垃圾收集).然而 - 作为一种副作用 - 我也不能同时拥有两个阅读过程.

有什么建议?

是否存在某种"这只是一种只与写入冲突的只读动作"Mutex?

c++ linux multithreading mutex

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

如何从命令行创建新的Firebird数据库?

我想在我的C#客户端应用程序中创建一个新的Firebird数据库.是否有命令行实用程序可以执行此操作?

firebird command-line isql

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

从MATLAB调用C++代码?

由于严重依赖模板,我有一些代码需要用C++编写代码.我想从MATLAB中调用这个代码:基本上,我需要将一些参数传递给C++代码,并让C++代码将一个矩阵返回给MATLAB.我听说这可能是一个叫做MEX文件的东西,我还在调查.但是我不确定这些MEX文件支持什么.是否支持所有C++(例如STLBoost)?这有多难?

编辑:我不需要任何共享库,只需要像标题一样的东西shared_ptr.

c++ matlab

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

带有MVC的Spring 3 JSON

有没有办法构建分别使用和生成格式化请求和响应的Spring Web调用application/json

也许这不是Spring MVC,我不确定.我正在寻找与Jersey/JSON类似的Spring库.最好的情况是,如果有一个注释,我可以添加到Controller类,将其转换为JSON服务调用.

显示如何使用JSON 构建Spring Web Services的教程非常棒.


编辑:我正在寻找一种基于注释的方法(类似泽西岛).

EDIT2:像泽西岛一样,我正在寻找REST支持(POST,GET,DELETE,PUT).

编辑3:最优选的,这将是pom.xml关于使用spring-js与jackson Spring原生版本的东西的条目和一些信息.

java spring json web-services

29
推荐指数
2
解决办法
6万
查看次数

在慢速机器上开发是否过早优化?

我们应该在缓慢的盒子上发展,因为它迫使我们尽早优化.

Randall Hyde在"早熟优化的谬误"中指出,围绕Hoare引用有很多误解:

我们应该忘记小的效率,大约97%的时间说:过早的优化是所有邪恶的根源.

特别是,尽管机器现在比Hoare当天的机器尖叫,但这并不意味着"应该避免优化".那么,当他建议我们应该在适度节奏的盒子上发展时,我尊敬的同事有一个观点吗?这个想法是,性能瓶颈对慢速盒子更具刺激性,因此它们可能会受到关注.

developer-machine premature-optimization

5
推荐指数
2
解决办法
436
查看次数

如何将第三列打印到最后一列?

我正在尝试从DbgView日志文件中删除前两列(我不感兴趣).我似乎无法找到从第3列开始直到行结束的示例.请注意,每一行都有可变数量的列.

unix linux shell multiple-columns

108
推荐指数
10
解决办法
22万
查看次数

如何列出所有计算机以及他们最后一次登录AD?

我正在尝试检索计算机名称列表以及它们上次从Active Directory登录的日期,并将它们返回到数据表中.获取名称很容易但是当我尝试添加"lastLogon"或"lastLogonTimestamp"时,如下所示,我获得的lastLogonTimestamp的唯一值是"System._ComObject"

public DataTable GetListOfComputers(string domainName)
{
  DirectoryEntry entry = new DirectoryEntry("LDAP://DC=" + domainName + ",DC=com");
  DirectorySearcher search = new DirectorySearcher(entry);
  string query = "(objectclass=computer)";
  search.Filter = query;

  search.PropertiesToLoad.Add("name");
  search.PropertiesToLoad.Add("lastLogonTimestamp");

  SearchResultCollection mySearchResultColl = search.FindAll();

  DataTable results = new DataTable();
  results.Columns.Add("name");
  results.Columns.Add("lastLogonTimestamp");

  foreach (SearchResult sr in mySearchResultColl)
  {
    DataRow dr = results.NewRow();
    DirectoryEntry de = sr.GetDirectoryEntry();
    dr["name"] = de.Properties["Name"].Value;
    dr["lastLogonTimestamp"] = de.Properties["lastLogonTimestamp"].Value;
    results.Rows.Add(dr);
    de.Close();
  }

  return results;
}
Run Code Online (Sandbox Code Playgroud)

如果我使用像LDP这样的工具查询AD,我可以看到该属性存在并填充了数据.我怎样才能获得这些信息?

c# directoryservices

3
推荐指数
2
解决办法
8566
查看次数