|
First, did you notice that when you wrote the connection string, you used a comma to identify the port instead of a colon?
Data Source=127.0.0.1,7438
Also, are you sure the SQL Server isn't listening on port 1434 or that it is running? If SQL server is listening on port 1433, then you need to use the port it's listening on.
|
|
|
|
|
|
Hi All,
I am a newbie for C# currently working on a porting project.
I need to port and use a VC++ (6.0) MFC extesion DLL methods in C# (8.0) application.
To do that,
I created a managed wrapper dll (MFC Regular DLL shared with /CLR turned ON) from C# and referred the MFC extension DLL from it.
But when i call the interface function written in the wrapper DLL from the C# application, I am getting the below error.
"Unable to load DLL 'TestWrapper.dll': Invalid access to memory location. (Exception from HRESULT: 0x800703E6)"
This error occurs only when i add the MFC extension DLL as the dependency to the wrapper dll.
If the remove that dependency 'TestWrapper.dll' loads successfully.
Note: All DLLs and C# application is in the same path. Problem happens in Windows XP SP3.
Any help is appreciated.
Thanks in advance.
Selva
|
|
|
|
|
native code DLLs are located by Windows searching the folders listed in the PATH environment variable. Unless PATH contains a simple "." entry, putting the native DLL in your EXE's folder is insufficient.
FWIW: when the native DLL calls on other DLLs, the same rules apply, and whatever DLL isn't found the error message will always be the same.
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read formatted code with indentation, so please use PRE tags for code snippets.
I'm not participating in frackin' Q&A, so if you want my opinion, ask away in a real forum (or on my profile page).
|
|
|
|
|
Hi Luc,
Thanks for you reply.
But my problem was a little different.
I had a few thread local variable declarations in the MFC DLL which caused
problem while loading at runtime.
Now working on it to change the implementation of the variable.
Thanks again.
Selva
|
|
|
|
|
I want to pass an argument to a foreach loop. This to specify the foreach loop to loop through a collection in a specific way. See this code:
foreach (DataType instance in collection(argument))
{
}
This is my test program:
class Program
{
static void Main(string[] args)
{
Cells cells = new Cells();
foreach (Cell cell in cells)
{
Console.WriteLine(cell.Value);
}
}
}
public class Cell
{
private string column;
private int row;
private string value;
public Cell(string column, int row, string value)
{
this.column = column;
this.row = row;
this.value = value;
}
public string Value
{
get { return value; }
set { this.value = value; }
}
}
public class Cells : IEnumerator, IEnumerable
{
private Cell[] cellList;
int position = -1;
public Cells()
{
cellList = new Cell[10]
{
new Cell("A", 1, "A:1"),
new Cell("A", 2, "A:2"),
new Cell("A", 3, "A:3"),
new Cell("A", 4, "A:4"),
new Cell("A", 5, "A:5"),
new Cell("B", 1, "B:1"),
new Cell("B", 2, "B:2"),
new Cell("B", 3, "B:3"),
new Cell("B", 4, "B:4"),
new Cell("B", 5, "B:5"),
};
}
public IEnumerator GetEnumerator()
{
return (IEnumerator)this;
}
public bool MoveNext()
{
position++;
return (position < cellList.Length);
}
public void Reset()
{
position = 0;
}
public object Current
{
get { return cellList[position]; }
}
}
Notice in the cellList array in the Cells class which is looped through in the Main()-method.
I want to loop through all Cell instances in the list which has the column member set to "B". I would like to prefer to write it like this in the Main()-method:
class Program
{
static void Main(string[] args)
{
Cells cells = new Cells();
foreach (Cell cell in cells("B"))
{
Console.WriteLine(cell.Value);
}
}
}
or
class Program
{
static void Main(string[] args)
{
Cells cells = new Cells();
foreach (Cell cell in cells.Column("B"))
{
Console.WriteLine(cell.Value);
}
}
}
Is it possible to modify my test code to this?
I'm not looking for this answer:
class Program
{
static void Main(string[] args)
{
Cells cells = new Cells();
foreach (Cell cell in cells)
{
if (cell.Value.Contains("B"))
{
Console.WriteLine(cell.Value);
}
}
}
}
Thanks!
|
|
|
|
|
Yes, but not quite the way you have it.
You would need to write a "Find(string s)" method (or similar) for your Cells class, which returns a list of each matching cell.
This might defeat the purpose a bit, as it would move the "cell.Value.Contains(s)" into the method, rather than the foreach loop.
I have learnt that you can not make someone love you, all you can do is stalk them and hope they panic and give in.
Apathy Error: Don't bother striking any key.
|
|
|
|
|
I'm fine if I need to write:
cell.Value.Contains(s) or something similar in the Cells class. I know I need to do some changes in the Cells class.
I'm just wonder if I, in the Main()-method, can pass an argument in the foreach-loop condition, just like I stated it.
|
|
|
|
|
Have a look at the AsQueryable() extension method.
See here.
|
|
|
|
|
|
If you want to be able to do
foreach (Cell cell in cells.HavingColumn("B")) {
Console.WriteLine(cell.Value);
}
all you have to do is add a method HavingColumn(string columnName) to the Cell class, which returns a
System.Collections.IEnumerable or a System.Collections.IEnumerable<T=Cell> ; one way of implementing that is by creating a List<Cell> .
FWIW1: this operation will be more expensive than simply adding a test inside your foreach; which is how the method will be implemented anyway (but then it is hidden from the external world).
FWIW2: and that must be how LINQ does it; the easiest and most expensive approach.
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read formatted code with indentation, so please use PRE tags for code snippets.
I'm not participating in frackin' Q&A, so if you want my opinion, ask away in a real forum (or on my profile page).
|
|
|
|
|
hi,
i am using api
GetPrivateProfileString(string section,
string key, string def, string retVal,
int size, string filePath);
which is not working for me but if i declare 4th arguement as stringBuilder then it works fine but i want to keep it string.wat to do?
|
|
|
|
|
Strings are immutable - this is a return parameter so you must supply a changeable type. You just convert from StringBuilder to string via StringBuilder.ToString when you need it.
I would suggest though, that you look at .NET app.Config files instead, as .INI files are a little old style...
I have learnt that you can not make someone love you, all you can do is stalk them and hope they panic and give in.
Apathy Error: Don't bother striking any key.
|
|
|
|
|
Whenever I use P/Invoke I write a method to wrap the API method:
[
System.Runtime.InteropServices.DllImportAttribute
(
"Kernel32"
,
SetLastError=true
,
EntryPoint="GetPrivateProfileString"
)
]
private unsafe static extern uint
API_GetPrivateProfileString
(
string lpAppName
,
string lpKeyName
,
string lpDefault
,
byte* lpReturnedString
,
int nSize
,
string lpFileName
) ;
public unsafe static int
GetPrivateProfileString
(
string lpAppName
,
string lpKeyName
,
string lpDefault
,
out string lpReturnedString
,
int nSize
,
string lpFileName
)
{
int result ;
byte[] temp = new byte [ nSize ] ;
fixed ( byte* ptemp = temp )
{
result = (int) API_GetPrivateProfileString
(
lpAppName
,
lpKeyName
,
lpDefault
,
ptemp
,
nSize
,
lpFileName
) ;
}
lpReturnedString = System.Text.Encoding.Unicode.GetString ( temp ).Substring ( 0 , result ) ;
return ( result ) ;
}
I wrote this for someone else when I was just learning C#, I don't use it. I use XML for configuration files.
|
|
|
|
|
Dear all,
Im new in this and hope to get some advice.
I have to send a datatable through soap to a soap server.
Can anyone give me some hints/references of how to do that?
Thanks in advance.
|
|
|
|
|
To send data over SOAP, you need to construct a web service and then call an exposed method in that web service.
I think you should start by reading a book on web services.
You can take a look at this article also.
|
|
|
|
|
hi everyone,
In the project am working on i have list of user which i can select multiple user and then click on print form or card
for form it is already done all am doing is to build the table inside a string then pass it the the following JavaScript
function printDiv() { <br />
var ToEdit1 = document.getElementById('ListParticipantsUC1_hdnToPrint').value;<br />
var ToEdit2 = ToEdit1.replace(/="/g, "'"); <br />
var ToPrint = ToEdit2.replace(/</g,"<");<br />
var WinPrint = window.open('','','left=0,top=0,width=1,height=1,toolbar=0,scrollbars=0,status=0');<br />
var report = '<head><META name="WebPartPageExpansion" content="full"><META name="WebPartPageExpansion" content="full"><META name="WebPartPageExpansion" content="full">';<br />
report = report + '<link href="includes/En/print.css" type="text/css" rel="stylesheet" media="print,screen"/></head>';<br />
report = report + '<style>.break { page-break-before: always; }</style><body><table width="100%">';<br />
report = report + '<tr><td>';<br />
WinPrint.document.write(report + ToPrint + '</td></tr></table></body>');<br />
WinPrint.document.close();<br />
WinPrint.focus();<br />
WinPrint.print();<br />
WinPrint.close(); <br />
}
but when it came to print the card i had to add table on the page because it contain 4 images that i read from database, so after filling all the information including the images, i render the whole page and save it to a string and pass it as the form
StringWriter sw = new StringWriter();
HtmlTextWriter w = new HtmlTextWriter(sw);
areaToPrint.RenderControl(w);
HtmlCode = HtmlCode + sw.GetStringBuilder().ToString();
but i cannot control its position or anything at print time
any suggestions or new methods to print the card
|
|
|
|
|
hi all,
i have a windows application project and a team contains 3 developer, i want to use vss to make the project available for each developer, and each developer changes and errors not shown to another.
thanx all.
|
|
|
|
|
I have a vague feeling that this might be close to what you are looking for: Visual SourceSafe 2005 - Sharing and Branching [^]
me, me, me
"The dinosaurs became extinct because they didn't have a space program. And if we become extinct because we don't have a space program, it'll serve us right!"
Larry Niven
|
|
|
|
|
You will need to obtain licenses / buy VSS.
You can then go through this link.
|
|
|
|
|
hi
i use it but the problem is :
if any developer change the code the yes to all message shown to other developers. it means the vss not manage it.
can you help me to solve this problem.
thanx alot
|
|
|
|
|
Where is your code stored? If it's on a network share, all developers will see the same thing.
In order to setup vss, you should:
- assign userids to each developer (through vssadmin)
- create the initial branch of your project, and upload the current version.
- each developer should now select a local working directory for that project, and check out or retrieve the current version of files, and work on his local copy.
- when they feel the code is complete, the should check-in their code for others to see.
I have the impression that you are not very experienced with SCCMs. You may want to read this[^].
|
|
|
|
|
hi
i have a note, we are not work on network sharing, but work on one server as terminal remote users.
is this way make a problem.
thanks all
|
|
|
|
|
In that case, the working directory of the users should be under their profile. (for instance My Documents).
|
|
|
|
|
hi
i define 3 users (developres) from vss administration, but i don't know how to set a working folder for each one,
can u help me?.
thanks all
|
|
|
|
|