我写了这个qsort:
void qsort(void *a[],int low,int high, int (*compare)(void*,void*));
Run Code Online (Sandbox Code Playgroud)
当我打电话给你
char *strarr[5];
Run Code Online (Sandbox Code Playgroud)
它表示从char**到void**的无效转换.为什么这是错的?
这是代码:
#include<cstdlib>
#include<cstdio>
#include<iostream>
using namespace std;
inline void strswap(void *a,void *b) {
char *t=*(char**)a;
*(char**)a=*(char**)b;
*(char**)b=t;
}
int strcompare(void *a, void *b) {
return strcmp(*(char**)a,*(char**)b);
}
void qsort1(void *a[],int low,int high, int (*compare)(void*,void*), void (*swap)(void*,void*)) {
if(low>=high)
return;
int q=low-1;
for(int i=low;i<=high-1;i++)
if((*compare)(&a[i],&a[high]) < 0)
swap(&a[i],&a[++q]);
swap(&a[high],&a[++q]);
qsort1(a,low,q-1,compare,swap);
qsort1(a,q+1,high,compare,swap);
}
int main() {
const int n=3;
//int a[n]={4,6,8,12,10,9,8,0,24,3};
char *strarr[5]={"abcd","zvb","cax"};
qsort1(strarr,0,n-1,strcompare,strswap);
for(int i=0;i<n;i++)
cout << strarr[i] << …Run Code Online (Sandbox Code Playgroud) 我正在维护一个应用程序,它目前只是一个Web服务(使用WCF构建)和数据库后端.Web服务是分层构建的,具有linq-to-sql数据访问部分,其中核心功能位于自己的程序集中,并且包含WCF代码的Web服务程序集.核心程序集还处理所有业务逻辑规则(实际上很少).
客户现在需要应用程序的Web界面,而不是仅通过使用Web服务的其他应用程序访问它.我对现代Web应用程序设计很遗憾,所以我想就Web应用程序使用的体系结构和框架提出一些建议.Web应用程序将使用具有业务规则的相同核心程序集,并将linq-to-sql数据访问层用作Web服务.
我想到的一些概念是:
还有更多的概念我应该研究一下吗?对于一个新项目哪一个最好?
开发工具是面向.NET 3.5的Visual Studio 2008 Team Edition for Developers.如果它提供任何好处,则可以升级到Visual Studio 2010 Premium(或者甚至是Ultimate).
我有几个类,都来自相同的基类型.
class basetype{}
class TypeA : basetype{}
class TypeB : basetype{}
...
Run Code Online (Sandbox Code Playgroud)
其中许多存储在列表中.
List<basetype> myObjects
Run Code Online (Sandbox Code Playgroud)
与往常一样,这些类型中的每一种都必须以不同方式处理.现在我有几种处理它们的方法,以及一种将basetype作为参数的方法.
HandleTypes(TypeA obj){}
HandleTypes(TypeB obj){}
HandleTypes(basetype obj)
Run Code Online (Sandbox Code Playgroud)
目前,我的HandleAllTypes看起来像这样:
string name = obj.GetType().Name
switch(name)
{
case "TypeA":
return HandleTypes(obj as TypeA);
case "TypeB":
return HandleTypes(obj as TypeB);
....
}
Run Code Online (Sandbox Code Playgroud)
现在这是废话.有没有像这样的方式
HandleTypes(obj ?"as derived type"?)
Run Code Online (Sandbox Code Playgroud)
通过MSDN和其他来源搜索,一无所获.
我在VS2010上使用代码优先方法编写了一个简单的.net mvc 3应用程序来生成模式.当我将它部署到共享生产服务器时,我收到以下错误:[SqlException(0x80131904):在数据库'master'中拒绝CREATE DATABASE权限.
这是我的型号代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;
namespace Bonappetit.Models
{
public class MenuItem
{
public int ID { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public decimal Price { get; set; }
}
public class MenuItemDBContext : DbContext
{
public DbSet<MenuItem> MenuItems { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的控制器代码:
namespace Bonappetit.Controllers
{
public class MenuItemsController : Controller
{
private MenuItemDBContext db = …Run Code Online (Sandbox Code Playgroud) 嗨,我是SAML和SSO技术的新手。我正在尝试使用签名和加密的断言创建有效的SAML响应。我创建了一个已签名的SAML响应,但是我无法加密断言并创建标签。我生成的SAML响应是,
<samlp:Response xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="_88a4cf19-6f41-46ee-9dc3-98ac80168bd9" Version="2.0" IssueInstant="2015-03-26T11:43:13.4468624Z" Destination="Test1" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
<saml:Issuer>Test</saml:Issuer>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
<Reference URI="#_49bc8835-7c9a-4ee2-8087-7cfcbe48375f">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
<Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<DigestValue>My4iQVO1Oy3i6jV+Jlp0czX0mpA=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>GWfdKMCHbiqq6OhyHQ0y2LoDQkmC95fs3SKWyPMzu6jSjbf6vrMRFCrlch+DU1k3+sfsj1tFkJNMPKpxZIx2XksjnEQv3Hdqy7oPSoGiODmrky7CTKEdYbCQqu6a8dwNBLNQTClYAgDz/m5yfbFlJNPy9TtsCl2l1R/qg6dzVkA=</SignatureValue>
<KeyInfo>
<X509Data>
<X509Certificate>MIIBwTCCAS6gAwIBAgIQr71oSHfrBKpKpRUTWmBFCzAJBgUrDgMCHQUAMCMxITAfBgNVBAMeGABCAEYASQBcAGQAcwBwAGUAaQBnAGgAdDAeFw0xMDAyMTkxMzI4MzlaFw0xMTAyMTkxOTI4MzlaMCMxITAfBgNVBAMeGABCAEYASQBcAGQAcwBwAGUAaQBnAGgAdDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxXmIj8FBaL+94B/fNsBcoNZZraicGsm5+8VtWQIaGdM65q6vgDSQAg4zOkTQCqKh2vlN2NHSZb2XjcrUTWm2Vb279dvkOZfZ1mdQeLjM2LbXvrY4e7qK1dhZy9gZ3Mhvuk3cKPwwPsLNFifOt6OsS8ZzK7/PC+uUKznZtRsCAwEAATAJBgUrDgMCHQUAA4GBADGP1MjZm28GdYy3mQGprHQNDn8fIyBQvhwVwl4SVPxYDTKG7OsUC/QDUzy8vGXm+9qd2Es5creZS1DTAweC60JsJLdmp631FnbG4xJOCRHbR0HWyruhGkN6wPJ0RyJbdUrAcEPG4cfcYwl3oBeL48MfUD56UC0jSfBezUvnOMBX</X509Certificate>
</X509Data>
</KeyInfo>
</Signature>
<samlp:Status>
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
</samlp:Status>
<saml:Assertion Version="2.0" ID="_49bc8835-7c9a-4ee2-8087-7cfcbe48375f" IssueInstant="2015-03-26T11:43:13.6835615Z">
<saml:Issuer>Test</saml:Issuer>
<saml:Subject>
<saml:NameID NameQualifier="TestDomain">TestSubject</saml:NameID>
<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml:SubjectConfirmationData NotOnOrAfter="2015-03-26T11:48:13.7304370Z" Recipient="Test1" />
</saml:SubjectConfirmation>
</saml:Subject>
<saml:Conditions NotBefore="2015-03-26T11:43:13.6835615Z" NotOnOrAfter="2015-03-26T11:48:13.6835615Z">
<saml:AudienceRestriction>
<saml:Audience>TestDomain</saml:Audience>
</saml:AudienceRestriction>
</saml:Conditions>
<saml:AuthnStatement AuthnInstant="2015-03-26T11:43:13.6835615Z">
<saml:AuthnContext>
<saml:AuthnContextClassRef>AuthnContextClassRef</saml:AuthnContextClassRef>
</saml:AuthnContext>
</saml:AuthnStatement>
<saml:AttributeStatement>
<saml:Attribute Name="UserId" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
<saml:AttributeValue …Run Code Online (Sandbox Code Playgroud) 我正在开发一个日志应用程序,它要求我有一个作为服务公开的工作流程(工作流程服务).我们希望将其作为Windows服务托管(不希望将工作流服务作为IIS中的.svc文件托管).将其作为Windows服务的另一个原因是能够通过命名管道与服务进行通信.
我们是否可以通过命名管道公开工作流服务而无需在IIS中托管它?
我有一个电话号码表,将电话号码存储为 varchar(20)。我需要实现对整个数字的搜索,但也只对数字的最后一部分进行搜索,因此典型的查询将是:
SELECT * FROM PhoneNumbers WHERE Number LIKE '%1234'
Run Code Online (Sandbox Code Playgroud)
如何在Number列上放置索引以使这些搜索高效?有没有办法创建一个索引来对反转字符串上的记录进行排序?另一种选择可能是在存储数字之前反转数字,这将给出如下查询:
SELECT * FROM PhoneNumbers WHERE ReverseNumber LIKE '4321%'
Run Code Online (Sandbox Code Playgroud)
但是,这将要求数据库的所有用户始终反转字符串。可以通过存储正常数字和反转数字并通过插入/更新时的触发器更新反转数字来解决此问题。但这种解决方案并不是很优雅。
还有其他建议吗?
我有线程A创建另一个线程B,而线程A正在等待使用WaitForSingleObject等待线程B死亡.
问题是即使线程B从线程的"thread_func"返回,线程A 也不会发出信号!.
我知道因为我在thread_func(线程B的主函数)的末尾添加了跟踪(OutputDebugString),我可以看到线程B完成了它的执行,但线程A永远不会从WaitForSingleObject中出来.
现在,我还必须补充一点,这个代码在一个COM对象中,当我调用regsvr32.exe(它被卡住了!)时,上面描述的场景正在发生,所以我相信线程A来自DLLMain.
任何想法为什么线程A没有得到信号?!?!
c++ winapi multithreading synchronization waitforsingleobject
我有一个C#app应用程序在某种程度上工作.我需要做的是,如果计算机(给定IP地址)正在运行应用程序(TEKBSS.exe),则继续执行.我怎样才能做到这一点?有人能帮我吗?
我正在使用QT 5.2并且有一个QListWidget女巫显示一个字符串列表,我希望第一个项目(在0)初始设置为突出显示.我尝试了以下方法:
mUi->listWidget->setCurrentRow(0);
mUi->listWidget->setCurrentItem(mUi->listWidget->item(0),QItemSelectionModel::Select);
mUi->listWidget->currentItem()->setSelected(true);
mUi->listWidget->selectionModel()->select(mUi->listWidget->model()->index(0,0, QModelIndex()),QItemSelectionModel::Select);
Run Code Online (Sandbox Code Playgroud)
即使选择了项目,它也不会突出显示.如果我使用鼠标(单击)或键盘(Tab键)导航到该项目,它会突出显示但我希望它最初不使用鼠标或键盘突出显示.怎么做?提前致谢.
c# ×5
.net ×2
c++ ×2
architecture ×1
asp.net-ajax ×1
asp.net-mvc ×1
casting ×1
highlight ×1
indexing ×1
named-pipes ×1
qlistwidget ×1
qt ×1
reflection ×1
saml ×1
sql-server ×1
upcasting ×1
wcf ×1
winapi ×1
workflow ×1